Plot vectors in cell array over for loop
12 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
skrowten_hermit
el 12 de Oct. de 2020
Comentada: skrowten_hermit
el 12 de Oct. de 2020
I have the following data structure (a cell array populated with vectors):
sigvecarray = {};
freqarray = {};
% Reading the audio files, getting the signal vector and the corresponding
for k = 1:numel(inputarray) % indices
curr_input = inputarray{k};
[y, Fs] = audioread(curr_input);
sigvecarray{k} = y;
freqarray{k} = Fs;
end
I'm trying to plot them over a for loop by using the following:
for k = 1:numel(sigvecarray)
plot(sigvecarray{k})
end
But I get only the fist vector plotted as my output. What could I be doing wrong here? Is it because the cell array is a row vector? If yes, how do I convert the cell array to a column vector from a row vector?
0 comentarios
Respuesta aceptada
KSSV
el 12 de Oct. de 2020
figure
hold on
for k = 1:numel(sigvecarray)
plot(sigvecarray{k})
end
5 comentarios
Más respuestas (1)
Ameer Hamza
el 12 de Oct. de 2020
Editada: Ameer Hamza
el 12 de Oct. de 2020
hold on
will add new lines on the same axes without deleting old lines.
3 comentarios
Ameer Hamza
el 12 de Oct. de 2020
You need to use the Position property of the axes object to change their size. An alternative might be to use
nexttile(): https://www.mathworks.com/help/matlab/ref/nexttile.html. Though I am not sure if there is a significant difference.
Ver también
Categorías
Más información sobre Graphics Performance en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!