資源下載:https://download.csdn.net/download/qq_16635325/10894373
方法,我已經寫成了一個函數SAVEGIF
用法和說明
savegif 將位於for循環中的figure動畫轉化為gif文件
用法:
savegif必須在for循環中輸入savegif函數,默認文件名為‘untitledgif.gif’
savegif('filename')必須在for循環中使用,文件名保存為‘filename.gif’.
savegif('filename.gif') 必須在for循環中使用,文件名保存為‘filename.gif’.
注意:在使用該函數前最好使用clear all命令清除全局變量,不過后面已經加了一個文件存在性檢查,大家放心使用吧
簡單的測試例子
1 for i=1:5:360 2 plot(i,sind(i),'*'); 3 savegif('dot') 4 5 axis([0,360,-1,1]) 6 hold on 7 end
1 t=0:0.05:5; 2 z=0:0.1:40; 3 omiga=3/4*pi; 4 beta=1;tao=1; 5 for m=1:length(t) 6 y=real(exp(1i*(omiga*t(m)+beta*z))+tao*exp(1i*(omiga*t(m)-beta*z))); 7 cla;%從當前坐標區刪除包含可見句柄的所有圖形對象 8 hold on; 9 %figure('color','black'); 10 plot(y); 11 set(gca, 'color', 'black'); 12 ylim([-2,2]); 13 frame=getframe(gcf);%以類似於截圖的方式保存繪制過的圖像 14 imind=frame2im(frame);%從單個影片幀 F 返回真彩色 (RGB) 圖像 15 [imind,cm] = rgb2ind(imind,256);%將真彩色圖像轉化為索引圖像 16 if(m==1) 17 imwrite(imind,cm,'駐波.GIF','gif','Loopcount',inf,'DelayTime',0.01); 18 else 19 imwrite(imind,cm,'駐波.GIF','gif','WriteMode','append','DelayTime',0.01); 20 end 21 end
結果