有些时候,我需要把多张figure绘制成动图,那么如何用MATLAB实现呢?本文就带大家一起来看一下
可参考 :http://www.voidcn.com/article/p-wfxerpjf-bmk.html
代码:
for t=1:M
%plot...绘图代码
f = getframe;%捕获坐标区或图窗作为影片帧
[I,map] = rgb2ind(f.cdata,256,'nodither'); %rgb图转索引图
if t==1
imwrite(I,map,'videos.gif','DelayTime',0,'LoopCount',inf)%图像写入gif文件
else
imwrite(I,map,'videos.gif','gif','WriteMode','append','DelayTime',0.5);
end
end
效果图:
说明:
f=getframe:
f 是一个结构体,其中包含的 cdata 字段中包含捕获的图像数据。
‘LoopCount’ - 重复动画的次数
Inf (默认) | 范围 [0,65535] 内的整数
‘DelayTime’ - 显示下一个图像之前的时滞
0.5 (默认) | 范围 [0,655] 内的标量值
显示下一个图像之前的时滞(秒),包含 ‘DelayTime’ 和范围 [0,655] 内的标量值。0 的值以硬件允许的最快速度显示图像。
imwrite 官方说明链接:
https://ww2.mathworks.cn/help/matlab/ref/imwrite.html