matlab中如何导出动画

matlab中如何导出动画,第1张

1、首先打开电脑上的“matlab”软件,此处以下图中的代码为例,绘制出一个三维图像。meshgrid函数用于生成网格点。可以使用自己喜欢的例子来制作动画

2、下面点击回车键,代码运行后,绘制出的三维图像。

3、输入命令theAxes=axis在工作区可以看到theAxes=[0,50,0,60,-0.5,1],是surf函数生成的。

4、使用命令fmat=moviein(20)把fmat保存为一个moviein结构体,括号里的20表示动画有20帧。

5、接着使用循环结构分别画每一帧的图像,此处surf函数分20份来画,坐标轴统一为之前的保存的坐标轴,把moviein结构体fmat的取为getframe。

6、下面在命令行窗口输入movie(fmat,10);就可以开始放映动画。

7、在绘图窗口即可看到运行结果,可以看到原来的静态图像变为动画了。

注意事项:

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多。

用matlab制作动画的主要函数是getframe(捕捉轴或图形作为电影帧),movie(播放录制的电影帧)。

给你一个实例(匀强电场),以帮助你理解。

t=0:0.01:6*pi

v0x=1v0y=1

a1=1

y1=v0y*t+0.5*a1*t.*t

x1=v0x*t

for i=1:length(t)

plot(x1(1:i),y1(1:i))

axis([0,20,0,200])

grid on,hold on

plot(x1(i),y1(i),'r.','markersize',20) 

title('匀强电场')

xlabel('x'),ylabel('y')

M(i)=getframe

end

movie(M,1)

运行过程及结果

1利用moviein命令对内存进行初始化,创建一个最够大的矩阵,使其能够容纳基于当前坐标轴大小的一系列制定的图形(帧)moviein(n)可以创建一个足够大的n列矩阵。

2利用getframe命令生成每个帧。

3利用movie命令按照指定的速度和次数运行该动画,movie(M,n)可以播放由矩阵M所定义的画面n次,默认n时只播放一次。

演示山峰函数绕Z轴旋转的动画。

>>[X,Y,Z]=peaks(30)

>>surf(X,Y,Z)

>>axis([-3,3,-3,3,-10,10])

>>axis off

>>shading interp

>>colormap(hot)

>>M=moviein(20)%建立一个20列的大矩阵

>>for i=1:20

view(-37.5+24*(i-1),30) %改变视点

M(:,i)=getframe%将图形保存到M矩阵

end

>>movie(M,2) %播放画面2次


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11757220.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存