0

我试图在 Matlab 的循环内将多个图形绘制到一个图形上,hold但似乎没有用。我不能发布图像,或者我会显示输出,但只有循环中的最后一个图和循环外的图被绘制出来。

我试过把循环hold内外都放在里面,for没有任何区别。有人可以指出我做错了什么或提供更好的方法建议吗?我正在使用 Matlab r2008a。

谢谢!

figure
colors = ['b','r','g','m'];
hold on
for det = 1:4
    plot(tvals,DOxy(:,det),colors(det));
end
plot(tvals,mOx,'k')
xlabel 'Time (s)'
ylabel '\Delta Oxy (\muM)'
legend('Probe 1','Probe 2', 'Probe 3','Probe 4')
hold off
4

2 回答 2

1

您正在正确使用 hold on :

x = -pi:.1:pi;
figure
colors = ['b','r','g','m'];
hold on
for det = 1:4
    plot(x,det*sin(x),colors(det));
end
plot(x,cos(x));

因此,您的代码中的某处可能存在错误。

于 2013-05-30T18:09:54.893 回答
0

我会做这样的事情:

figure;
colors = ['b','r','g','m'];
for det = 1:4
    plot(tvals,DOxy(:,det),colors(det));hold on;drawnow
end
plot(tvals,mOx,'k');
xlabel('Time (s)');ylabel('\Delta Oxy (\muM)');
legend('Probe 1','Probe 2', 'Probe 3','Probe 4');

你不需要推迟。而且drawow有助于更新每个循环中的情节,因此您可以一点一点地看到变化。

于 2013-05-30T18:24:30.820 回答