我在Matlab中有多个2D线图(它们代表一些波在空间中移动)。每个图表代表某个时间t的波。我想通过这些图表进行动画处理(即显示第一个图表,只显示一秒钟,然后显示下一个,然后显示下一个,等等。我想在结束时间后回到开头)以显示系统的时间演变。冲浪和网格不能真正做我想要的,因为我很难看到随着时间步数变化的变化。有没有办法在Matlab中做到这一点?
答案 0 :(得分:2)
我假设" 2d-line"你的意思是2d情节。这是由plot
- 函数完成的,因此不需要surf
或mesh
。对不起,当我弄错了。
以下代码执行我认为您要求的内容:
% 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