通过多个2D Matlab绘制动画

时间:2015-06-22 20:32:50

标签: matlab plot

我在Matlab中有多个2D线图(它们代表一些波在空间中移动)。每个图表代表某个时间t的波。我想通过这些图表进行动画处理(即显示第一个图表,只显示一秒钟,然后显示下一个,然后显示下一个,等等。我想在结束时间后回到开头)以显示系统的时间演变。冲浪和网格不能真正做我想要的,因为我很难看到随着时间步数变化的变化。有没有办法在Matlab中做到这一点?

1 个答案:

答案 0 :(得分:2)

我假设" 2d-line"你的意思是2d情节。这是由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