create a "moving window" plot
18 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Emily Platt
am 20 Jun. 2021
Kommentiert: Emily Platt
am 21 Jun. 2021
Hello, I have a cell array that i want to plot (all numeric values) called RR. the data was collected over time so values lower down would be later in time. i want to plot multiple plots on seperate figures in a moving window apporach.
I want to plot the first 257 points, and then the next 257 on a seperate plot etc and then the final plot which will be smaller than the rest
i know to use the first one I'd type:
plot(RR(1:257))
and then i'm assuming i should use a for loop but im struggling to incoporate it
Thank you in advance
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 20 Jun. 2021
Assuming numeric RR
for base = 1 : 257 : length(RR)
idx = base : min(length(RR), base+256);
figure
plot(idx, RR(idx));
end
Weitere Antworten (1)
Image Analyst
am 20 Jun. 2021
Unfortunately you forgot to attach your cell array. If it's bigger than 5 MB, crop it down. Then use the paperclip icon so we can try things.
How many cells are in the cell array? Are the contents of each of the cells in the cell array the same (like a 1-D 257 element vector) or does each array have a different size? What is the size of the contents of the array in each cell? Why are you even using cell arrays instead of a normal 3 or 4-D double array (why complicate things)?
If ca is your cell array
for k = 1 : length(ca)
thisVector = ca{k}; % Assume each cell has a long vector in it.
indexes = unique([1 : 257 : length(thisVector), length(thisVector)]);
for k2 = 1 : length(indexes) - 1
index1 = indexes(k2);
index2 = indexes(k2 + 1) - 1;
plot(thisVector(index1:index2), '-', 'LineWidth', 2)
hold on;
end
end
grid on;
hold off;
Siehe auch
Kategorien
Mehr zu Annotations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!