matlab中的动画情节

时间:2017-07-23 09:29:41

标签: matlab animation plot

我正在尝试创建三角形的动画图,最终结果应该是十个三角形,后面是两个更大的三角形,后面是一条直线。使用matlab documentation,我最终得到了这个,这导致了一个动画的罪恶情节:

h = animatedline;
axis([0 4*pi -1 1])
x = linspace(0,4*pi,2000);

for k = 1:length(x)
    y = sin(x(k));
    addpoints(h,x(k),y);
    drawnow
end

问题是情节真的很慢,一旦我将y=sin(x(k))改为三角形,它就会变得更糟。有没有更好的方法来制作动画情节或至少调整速度? (如果速度不依赖于计算机)

2 个答案:

答案 0 :(得分:1)

你可以通过

加快速度
  • 一次计算y向量,而不是计算循环中的每个值。
  • 更新XData的{​​{1}}和YData属性,而非使用plot

代码变为:

animatedline

但速度的提升很小。如果你需要更快的速度,你可能需要减少点数。

答案 1 :(得分:0)

您可以检查comet函数以设置曲线的动画:

t = linspace(0,4*pi,2000);
comet(t, sin(t));

为曲线设置动画会更平滑,更容易(参见其documentation)。 此外,对于3d曲线,您可以使用comet3