1、moviein(n)在新版本matlab R2014以后已经废弃,此函数已经无效了。
2、使用movie函数制作动画的步骤如下
- 用在一个for循环中,生成你需要的帧数。
- 在此for循环中插入getframe函数,getframe函数可以捕捉每一个帧画面,并将画面数据保存为一个列向量。
- 在此循环中用一个矩阵接受此列向量,fmov(:,j)=getframe;
- 最后,在for循环end之后,用movie(M,n,fps)来播放这些帧画面,fps表示帧频,即可形成动态影像
- 最后,还可以调用movie2avi函数将矩阵中的一系列动画帧转换成avi视频文件,可独立于matlab播放
3、看一个实例
surf(peaks);
for j=1:40
surf(sin(2*pi*j/40)*peaks,peaks);
axis([0,40,0,40,-6,6]);
f(:,j)=getframe;
end
movie(f,3,10)
备注:注意三个问题
- axis的作用非常关键,是在每一帧画面中保持坐标轴一致,这样帧播放的过程中就不会出现画面闪动的问题。
- getframe的作用是至关重要的,getframe函数是让画面动起来,单独使用getframe就是让画面动起来。如果使用矩阵接受数据F(:,j)=getframe;则有两个功能,一是将画面动起来,此外还将每一帧的数据转换为列向量存储在F(:,j)矩阵中。
- 可在程序末尾添加movie2avi(mov, 'myPeaks.avi', 'compression', 'None');来制作avi文件。