使用多个图创建动画 - Octave / Matlab

时间:2015-04-07 13:41:56

标签: matlab animation plot octave

我正在使用Octave编写一个脚本,在不同的时间段绘制函数。我希望创建一个情节动画,以便看到时间的变化。

有没有办法这样做,以便可能以某种方式保存每个情节,每个情节可以组合起来创建这个动画?

提前感谢您的建议!

2 个答案:

答案 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