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