【发布时间】:2017-10-04 09:23:50
【问题描述】:
如何避免 MATLAB 在循环内绘制数据时弹出带有两个轴的 GUI 图 f。
这是一个简单的例子:
f=figure;
ax.h1 = axes('Parent',f,'Position',[0.1 0.1 0.8 0.35],'Units','normalized');
ax.h2 = axes('Parent',f,'Position',[0.1 0.6 0.8 0.35],'Units','normalized');
for j=1:20
axes(ax.h1)
hold on
plot(1:3,(1:3)+j)
axes(ax.h2)
hold on
plot(1:3,(1:3)+1+j)
pause(2)
end
我需要持续绘制数据几个小时。因此,如果每次生成新图时 MATLAB 都不会弹出,那就太好了。
谢谢!
【问题讨论】:
-
使图形不可见...但是,更好的方法是存储数据,然后在准备好后一次性绘制所有内容。
-
我可能是错的,但我相信你让它们“弹出”的原因是因为你调用了“axes”命令,它的副作用是该特定的轴将被显示和带来到最前沿。如果您只想“绘制”到该轴,可以直接从
plot命令执行此操作,即plot(ax.h1, bla bla bla)。 -
@Dev-iL。这是一个 GUI 图,带有一些按钮。所以我想继续寻找数据。如果我使图形不可见,我的 GUI 将不可见,这不会发生。如果我在不绘图的情况下继续存储数据,我将无法跟踪正在发生的事情。