如何在matlab中把文件生成avi格式的动画

来源:百度知道 编辑:UC知道 时间:2024/09/22 02:09:43
if mod(n,2)==0;
time=num2str(round(n.*dt./1.0e-9));
K=Kmin:Kmax;
subplot(2,1,1),plot(K,Ex,'r');axis([0 200 -1 1]);
title(['time = ',time,' ns']);
ylabel('Ex');
subplot(2,1,2),plot(1:timestep,Ex160,'b'); axis([0 timestep, -1 1]);
xlabel('timestep (160th grid)');
ylabel('Ex');
M=getframe(gcf);
end
end
movie(gcf,M,0,10)

这一段是生成连续图象的动画,但是我开头和最后看不懂 希望哪位高手能给我解释下 if mod(n,2)==0; time=num2str(round(n.*dt./1.0e-9));

M=getframe(gcf);
end
end
movie(gcf,M,0,10)看不懂

然后也不知道怎么把动画保存成为avi格式 希望高手能给我把保存动画的程序

通常动画可以用视频avi格式导出,也可以导出为gif.
基本流程是在动画循环中,将每个动画图画加入到avi文件中或写入GIF89a格式的Gif文件中.
close all; clear all;
%创建avi文件对象
aviobj = avifile('test.avi','compression','None');

%动画部分代码
t = linspace(0,2.5*pi,40);
fact = 10*sin(t);
fig=figure;
[x,y,z] = peaks;
for k=1:length(fact)
h = surf(x,y,fact(k)*z);
axis([-3 3 -3 3 -80 80])
axis off
caxis([-90 90])
%获取当前画面
F = getframe(fig);
%加入avi对象中
aviobj = addframe(aviobj,F);

%转成gif图片,只能用256色
im = frame2im(F);
[I,map] = rgb2ind(im,256);
%写入 GIF89a 格式文件
if k == 1;
imwrite(I,map,'test.gif','GIF', 'Loopcount',inf,'DelayTime',0.1);
else
imwrite(I,map,'test.gif','GIF','WriteMode','append','DelayTime',0.1);
end
end
close(fig);<