如何在matlab中把文件生成avi格式的动画
ifmod(n,2)==0;time=num2str(round(n.*dt./1.0e-9));K=Kmin:Kmax;subplot(2,1,1),plot(K,Ex...
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格式 希望高手能给我把保存动画的程序 展开
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格式 希望高手能给我把保存动画的程序 展开
2个回答
展开全部
通常动画可以用视频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);
%关闭avi对象
aviobj = close(aviobj);
基本流程是在动画循环中,将每个动画图画加入到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);
%关闭avi对象
aviobj = close(aviobj);
展开全部
试试这个。
MOVIE2AVI(MOV,'filename.avi')
clc;clear;
n=100;
x=0:pi/n:2*pi;
y=sin(x);
k=0;
for t=0:pi/n:2*pi
k=k+1;
x(k)=t
y(k)=sin(t);
H=plot(x,y,x(k),y(k),'or')
grid
MOV=getframe;
capture
MOVIE2AVI(MOV,'sinmovie1.avi')
end
figure
x=0:pi/n/10:2*pi;
y=sin(x);
grid on
comet(x,y)
MOVIE2AVI(MOV,'filename.avi')
clc;clear;
n=100;
x=0:pi/n:2*pi;
y=sin(x);
k=0;
for t=0:pi/n:2*pi
k=k+1;
x(k)=t
y(k)=sin(t);
H=plot(x,y,x(k),y(k),'or')
grid
MOV=getframe;
capture
MOVIE2AVI(MOV,'sinmovie1.avi')
end
figure
x=0:pi/n/10:2*pi;
y=sin(x);
grid on
comet(x,y)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询