MATLAB动画保存只对电影动画有意义,因为其他两种都是实时动画,一眨眼过去了,而电影动画是先将动画一帧一帧的保存下来,在使用movie函数播放。它的好处是,运行一次MATLAB程序就可以播放无数次,只要你的帧数据还在。
但是这还是不方便,由于它没法脱离MATLAB环境,很讨厌。还好MATLAB为我们提供了movie2avi函数,它可以把动画直接转换成avi文件,而avi文件则可以脱离Matalb环境而在其他地方运行了。
- function avimake
- warning off;
- load data
- [M,N,K]=size(data);
- data=data/(max(abs(data(:))));
- aviobj = avifile('mymovie.avi','fps',10);
- for kk=1:10:K
- imagesc(data(:,:,kk));
- set(gca,'clim',[-1 1]);
- colormap(hsv(128))
- frame = getframe(gca);
- aviobj = addframe(aviobj,frame);
- end
- aviobj = close(aviobj);
另外也可以直接保存gif动画
- for i = 1:length(x)
% 这里是绘图命令
- drawnow; % 刷新屏幕
- pause(0.05)
- f = getframe(gcf);
- imind = frame2im(f);
- [imind,cm] = rgb2ind(imind,256);
- if i == 1
- imwrite(imind,cm,filename,'gif', 'Loopcount',inf,'DelayTime',0.1);
- else
- imwrite(imind,cm,filename,'gif','WriteMode','append','DelayTime',0.1);
- end
- end
- 详情请见:http://www.matlabsky.com/thread-595-1-1.html