【问题标题】:Animate through multiple 2D Matlab plots通过多个 2D Matlab 绘图进行动画处理
【发布时间】:2015-06-22 20:32:50
【问题描述】:

我在 Matlab 中有多个二维线图(它们代表一些在空间中移动的波)。每个图代表某个时间 t 的波浪。我想通过这些图制作动画(即显示第一个图的一小部分,然后显示下一个图,然后显示下一个,等等。我想在到达结束时间后循环回到开头)以显示系统的时间演化。 surf 和 mesh 并没有真正做我想要的,因为很难看到我所拥有的时间步数的变化。有没有办法在 Matlab 中做到这一点?

【问题讨论】:

  • 你能提供一个我们可以玩的小例子吗?谢谢

标签: matlab plot


【解决方案1】:

我假设“二维线”是指二维图。这是由plot 函数完成的,因此不需要surfmesh。对不起,当我误会你的时候。

以下代码可以满足您的要求:

% Generate some propagating wave
n = 20;
t = linspace(0,10,100);
x = cell(1,n);
for i = 1:n
    x{i} = (1-abs(i/n-0.4))*sin(t+i*0.2);
end

% Create frames
figure;
for i = 1:length(x)
   clf;
   plot(t,x{i});
   ylim([-1,1]);
   myFrames(i) = getframe;  %#ok<SAGROW>
end

% Show movie
figure;
movie(myFrames,2,2);    % frames, repetitions, frames per second

【讨论】:

    猜你喜欢
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    相关资源
    最近更新 更多