好的,我现在只是从这里复制和粘贴。但是我添加了FrameRate
(每秒),因为您以后可能想使用(或询问)它。
writerObj = VideoWriter('Your_video.avi');
writerObj .FrameRate = 1; % 1 frames per second animation.
open(writerObj);
fig_h = figure;
for i = 1: G
contour(X1,X2,f);
hold on
plot(top(1:size(top,1)), 'rx');
frame = getframe(fig_h); % or frame = getframe; since getframe gets gcf.
writeVideo(writerObj, frame);
end
close(writerObj);
现在您Your_video.avi
的工作目录中将有一个文件。
如果VideoWriter
您的 matlab 不支持,您可以使用与此答案(或此处的数学工作文档示例)avifile
中提到的相同的用法,如下所示:
aviobj = avifile('Your_video.avi','compression','None', 'fps', 1);
fig_h = figure;
for i = 1:G
contour(X1,X2,f);
hold on
plot(top(1:size(top,1)), 'rx');
frame = getframe(fig_h); % or frame = getframe; since getframe gets gcf.
aviobj = addframe(aviobj, frame);
end
aviobj = close(aviobj);
编辑
正如这个问题所指出的那样,可能会出现一个问题,即捕获的帧是一个恒定的图像。如果您在 windows 上运行 Matlab,则此问题可能是 windows 与某些图形驱动程序结合引起的,并且可以按照此答案中所述解决。