在应用设计器(MATLAB)中,我要显示两个图形。这就是我所做的:
plot(app.UIAxes,(1:length(app.var.OEch))/app.var.OE_Fs,app.var.OEch,'Color',[0,0.7,0.9])
st=app.var.st;
hold on
for ss = 1:length(st)
plot(app.UIAxes,[st(ss);st(ss)],[50;250], 'r');
end
hold off
如果要在for循环中删除app.UIAxes,它将可以工作并分别绘制两个图形,但是我希望它能够在UIAxes上对其进行图形化。目前,我只看到一个白色屏幕,如果要运行此屏幕,绘制的图形应该在该屏幕上。
答案 0 :(得分:1)
将hold on
替换为hold(app.UIAxes, 'on');
hold(app.UIAxes, 'on');
for ss = 1:length(st)
plot(app.UIAxes,[st(ss);st(ss)],[50;250], 'r');
end
hold(app.UIAxes, 'off');
%Add drawnow command (just in case...).
drawnow
您需要使用hold(app.UIAxes, 'on');
的原因是hold on
应用了“当前轴”,并且在GUI应用程序中,焦点可能会更改为其他轴(当您有多个轴时)。