How to create a movie and play it instead of using a for loop of plots
3 views (last 30 days)
Show older comments
I have a cell (Nx1) which contains data (x,y,z coordinates). I then proceed to create N plots in a for loop which results in a movie like output.
However, I would like to be able to collect all the plots (silently) in a movie and then play it, save it etc.
I've found this:
but I don't know how this helps when you have various plot commands each of which draws a new plot.
0 Comments
Answers (2)
Naz
on 24 Nov 2011
Here is what I use. Don't know if it will work as is, but first it should play it (as a sequence of frames of 3D matrix DATA) and then play it again after saving to 'outFileName'... Don't remember exactly.
fig1 = figure(1);
winsize = get(fig1, 'Position');
winsize(1:2) = [0 0];
winsize(3:4) = winsize(3:4)*1.5;
numframes =total;
A = moviein(numframes, fig1, winsize);
set(fig1, 'nextplot', 'replacechildren');
for i = 1:numframes
imagesc(DATA(:,:,i), [0 0.3]); axis image; axis off; colormap gray
title(num2str(i));
A(:,i) = getframe(fig1, winsize);
end
frame_rate = 10;
movie(fig1,A,1,frame_rate, winsize)
movie2avi(A,num2str(outFileName), 'fps', frame_rate)
*In 'imagesc' line the term [0 0.3] is for contrast (you might not needed).
0 Comments
Nino
on 11 Jun 2013
Hello NAz, you answer is clear. but, suppose to have a trajectory defined in an array 3D+time (x,y,z,t). how is possible tu play the trajectory and read the time value on the plot by pointing the mouse on the graph?
0 Comments
See Also
Categories
Find more on Convert Image Type in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!