我正在使用Octave編寫一個在不同時間段繪製函數的腳本。我希望能夠創作出這些情節的動畫,以便通過時間觀察這些變化。用多個圖創建動畫 - Octave/Matlab
有沒有辦法做到這一點,以便可能每次以每種情節可以結合創建此動畫的方式保存每個情節?
在此先感謝您的建議!
我正在使用Octave編寫一個在不同時間段繪製函數的腳本。我希望能夠創作出這些情節的動畫,以便通過時間觀察這些變化。用多個圖創建動畫 - Octave/Matlab
有沒有辦法做到這一點,以便可能每次以每種情節可以結合創建此動畫的方式保存每個情節?
在此先感謝您的建議!
這有點雜牌組裝電腦的,但你可以做以下(在這裏工作與倍頻4.0.0-RC2):
x = (-5:.1:5);
for p = 1:5
plot (x, x.^p)
print animation.pdf -append
endfor
im = imread ("animation.pdf", "Index", "all");
imwrite (im, "animation.gif", "DelayTime", .5)
基本上,打印所有地塊成PDF,每頁一個。然後將PDF文件作爲圖像讀取並以GIF形式打印回來。這在Matlab上不起作用(它的imread實現不能處理pdf)。
好吧,我會試試看。 – user3460758
嗯確定不是我正在尋找....我想將它保存到某種電影文件以及添加到演示文稿 – user3460758
@ user3460758定義視頻文件?你沒有聲音,只有圖像,所以GIF應該做得很好。它也應該在演示文稿中顯示爲動畫。請注意,您可以使用LoopCount,因此它不會循環播放動畫,甚至可以將數組作爲DelayTime用於不同的時間間隔。您的解決方案完全是什麼問題? – carandraug
這將創建一個gif動畫
data=rand(100,100,20); %100 by 100 and 20 frames
%data go from 0 to 1, so lets convert to 8 bit unsigned integers for saving
data=data*2^8;
data=uint8(data);
%Write the first frame to a file named animGif.gif
imwrite(data(:,:,1),'/tmp/animGif.gif','gif','writemode','overwrite',...
'LoopCount',inf,'DelayTime',0);
%Loop through and write the rest of the frames
for ii=2:size(data,3)
imwrite(data(:,:,ii),'/tmp/animGif.gif','gif','writemode','append','DelayTime',0)
end
在MATLAB中,有'getframe'功能。這在Octave中是否也存在? – hbaderts
使用循環並在每次迭代時更新繪圖? –
我這樣做,但我只是繪製每個功能在同一個情節(不動畫)。另外,這不允許我將連續的地塊保存爲動畫 – user3460758