我正在使用 Matlab 编写一些 GUI 人员。我想使用“子轴”方法(可以在 Matlab FX subaxis.m上下载)在一个指定的“轴”中绘制一个带有子图的图形。
该程序一开始表现得非常正确。由于子图通过一键更新。然后错误弹出。我简化了问题并编写了一些测试代码,如下所示:
% Specify an 'axes' in my GUI (here is an example of axes handle called 'ax')
ax = axes;
axes(ax);
cla(ax, 'reset');
% Plot something using 'subaxis' with multiple subfigures
x = 0:0.1:10;
spacing = 0.0;
subaxis(3,1,1,'Spacing',spacing);
plot(x,rand(size(x)),'k')
legend('D','Location','NorthWest')
ylim([-0.2 1])
set(gca, 'box','off')
set(gca,'XAxisLocation','top')
subaxis(2,'Spacing',spacing);
plot(x,rand(size(x)),'r')
legend('C','Location','NorthWest')
ylim([-0.2 1])
set(gca,'xtick',[],'box','off','xcolor','w')
subaxis(3,'Spacing',spacing);
plot(x,rand(size(x)),'b')
legend('B','Location','NorthWest')
set(gca, 'box','off')
该程序在这一点上很好,并且达到了我的预期。现在我按下一个按钮来更新这些子图,但仍想在名为“ax”的指定轴中绘制子图:
axes(ax);
cla(ax, 'reset');
x = 0:0.1:10;
spacing = 0.0;
subaxis(3,1,1,'Spacing',spacing);
plot(x,rand(size(x)),'k')
legend('D','Location','NorthWest')
ylim([-0.2 1])
set(gca, 'box','off')
set(gca,'XAxisLocation','top')
subaxis(2,'Spacing',spacing);
plot(x,rand(size(x)),'r')
legend('C','Location','NorthWest')
ylim([-0.2 1])
set(gca,'xtick',[],'box','off','xcolor','w')
subaxis(3,'Spacing',spacing);
plot(x,rand(size(x)),'b')
legend('B','Location','NorthWest')
set(gca, 'box','off')
出现错误!!!
Error using axes
Invalid object handle
不知道该怎么做,因为错误信息太简短了。似乎子轴只能绘制到特定的“轴”一次。
任何帮助,将不胜感激。非常感谢。一个。