How to create a movie and play it instead of using a for loop of plots

3 visualizaciones (últimos 30 días)
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.

Respuestas (2)

Naz
Naz el 24 de Nov. de 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).

Nino
Nino el 11 de Jun. de 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?

Categorías

Más información sobre Convert Image Type 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!

Translated by