所以我在 MATLAB 中有一个简单的循环,它执行以下操作:
for p = 1:100
x = 4.*randn(1,100);
y = 7.*randn(1,100);
figure(1)
plot(randn(1,100));
figure(2);
plot(randn(1,100));
end
x 和 y 是组成的,但这就是它的要点。无论如何,当我运行这段代码时,毫不奇怪,MATLAB 会制作两个数字并相应地绘制。问题是,当我这样做时,我会在数字之间“闪烁”,这使得看到 x 和 y 随时间演变的质量变得更差。
我发现了一种使其中一个情节更平滑的方法,如下所示:
figure(1);
for p = 1:100
x = 4.*randn(1,100);
y = 7.*randn(1,100);
plot(randn(1,100));
drawnow
end
如果我这样做,那么图(1)当然会非常流畅地显示 x,而图(1)在图之间没有“闪烁”,但现在我不能显示图(2)或 y!
如何在不“闪烁”的情况下顺利地将这两个数量绘制在不同的图形(不是子图)上?
编辑:
感谢 Geodesic 的回答,该解决方案有效,但是有一个微妙之处,我认为这不是问题,但确实如此。
1) 我无法在此解决方案中使用“imagesc”。
例如,
figure(1);
aone = axes;
figure(2);
atwo = axes;
for p = 1:100
x = 4.*randn(1,100);
y = 7.*rand(10,100);
plot(aone,x);
drawnow;
imagesc(atwo,y);
drawnow;
end
在这种情况下,带有 imagesc(atwo, y) 的部分会崩溃。