发布时间:2019-07-29 17:40:59
求回答~
如何利用matlab做gif格式的动画?
1打开matlab,点击(1-1)---(1-2),将(1-3)的代码粘贴到编辑器中,点击(1-4)的“save”。(1-5)为存盘地址,(1-6)为文件名,点击(1-7)保存。
代码如下:
clear;clc;
figure %新建一张图
axis([0 5 0 2])%定义x轴(从0到5)和y轴的范围(从0到2)
for i=1:4
if i==1
text(i,1,'百','fontsize',40,'color','red');%i=1时,写一个‘百’字
end
if i==2
text(i,1,'度','fontsize',40,'color','red');%i=2时,写一个‘度’字
end
if i==3
text(i,1,'经','fontsize',40,'color','red'); %i=3时,写一个‘经’字
end
if i==4
text(i,1,'验','fontsize',40,'color','red');%i=4时,写一个‘验’字
end
picname=[num2str(i) '.fig'];%保存的文件名:如i=1时,picname=1.fig
hold on % 写后面的字时,不把前面的字冲掉
saveas(gcf,picname)
end
(这部分来自于百度经验“如何利用matlab批量存储图片?”)
stepall=4;
for i=1:stepall
picname=[num2str(i) '.fig'];
open(picname)
% set(gcf,'outerposition',get(0,'screensize'));% matlab窗口最大化
frame=getframe(gcf);
im=frame2im(frame);%制作gif文件,图像必须是index索引图像
[I,map]=rgb2ind(im,20);
if i==1
imwrite(I,map,'baidujingyan.gif','gif', 'Loopcount',inf,'DelayTime',0.5);%第一次必须创建!
elseif i==stepall
imwrite(I,map,'baidujingyan.gif','gif','WriteMode','append','DelayTime',0.5);
else
imwrite(I,map,'baidujingyan.gif','gif','WriteMode','append','DelayTime',0.5);
end;
close all
end
2点击(2-1)运行程序,点击(2-3)改变路径。然后程序就运行结束,由于程序本身运算量较小,运算速度很快。
3运行后保存的gif文件: