Can i record a figure as it is being plotted so that i can send it as an email attachment and viewed by someone who does not have matlab?

Answers (1)

Hello. You can save an animated figure using VideoWriter() function. For example ,
writerObj = VideoWriter('example.avi');
writerObj.FrameRate = 60;
open(writerObj);
Z = peaks; surf(Z);
axis tight
set(gca,'nextplot','replacechildren');
set(gcf,'Renderer','zbuffer');
for k = 1:20
surf(sin(2*pi*k/20)*Z,Z)
frame = getframe;
writeVideo(writerObj,frame);
end
close(writerObj);
The animated plot is saved as an .avi file.

4 Comments

Thanks. I manage to adapt it to my code. I get this error
Error using VideoWriter/writeVideo (line 383)
Frame must be 436 by 344
Error in videoooo (line 125)
writeVideo(writerObj,frame);
I can't really be much help unless I see your code. However, these links ( 1 and 2 ) might be useful for fixing your error.
When you use VideoWriter, every frame must be exactly the same size.
I am capturing the frames during plotting. In fact, I am having lots of for loop which are generating plots. Can I force the frames to be the same size for all the plots?

Sign in to comment.

Categories

Find more on Creating, Deleting, and Querying Graphics Objects in Help Center and File Exchange

Asked:

on 13 Jul 2015

Commented:

on 15 Jul 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!