我正在使用Octave编写一个脚本,在不同的时间段绘制函数。我希望创建一个情节动画,以便看到时间的变化。
有没有办法这样做,以便可能以某种方式保存每个情节,每个情节可以组合起来创建这个动画?
提前感谢您的建议!
答案 0 :(得分:3)
这有点像kludge,但你可以做到以下(在这里使用octave 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)。
答案 1 :(得分:3)
这会创建一个动画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