在matlab

时间:2017-06-26 06:58:19

标签: matlab animation

我想在matlab上制作一个自我更新的剧情。例如,在两端之间振动的弦。我在文档中找到的所有基本动画函数都完成了同样的事情,主要是为不断发展的绘图制作动画。即,功能保持不变,但绘制的点数随时间增加(或减少)。例如这个脚本:

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

x = linspace(0,4*pi,1000);
y = sin(x);
for k = 1:length(x)
    addpoints(h,x(k),y(k));
    drawnow
end

跟踪一个正弦函数,好像一只看不见的手正在绘制它。我想做的是为整个函数设置动画,但使用不同的参数,如相位或幅度。我尝试使用以下内容进行修改:

x = linspace(0,4*pi,1000);

;
axis([0,4*pi,-1,1])

for k = 1:10
    h = animatedline(x,sin(k*x))
    drawnow
end

这有点接近我的需要,但功能是逐步附加的,而不是替换。这导致总共绘制了10个函数而不是动画。

有谁知道我需要做什么?如果是这样,怎么能实现呢?

1 个答案:

答案 0 :(得分:2)

这个怎么样:

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

x = linspace(0,4*pi,1000);

for k = 1:0.01:10
    y = sin(k*x);
    clearpoints(h);        
    addpoints(h,x,y);
    drawnow 
end