Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab绘图&x27;亚轴';基于指定的';轴';_Matlab_User Interface_Subfigure - Fatal编程技术网

Matlab绘图&x27;亚轴';基于指定的';轴';

Matlab绘图&x27;亚轴';基于指定的';轴';,matlab,user-interface,subfigure,Matlab,User Interface,Subfigure,我正在使用Matlab为一些GUI人员编写代码。我想用“subaxis”方法(可以在MatlabFX上下载)在一个指定的“轴”上绘制一个带有子图形的图形 这个程序一开始运行得很正常。当通过单击按钮更新子图形时。然后错误弹出。我简化了问题并编写了一些测试代码,如下所示: % Specify an 'axes' in my GUI (here is an example of axes handle called 'ax') ax = axes; axes(ax); cla(ax, 'reset'

我正在使用Matlab为一些GUI人员编写代码。我想用“subaxis”方法(可以在MatlabFX上下载)在一个指定的“轴”上绘制一个带有子图形的图形

这个程序一开始运行得很正常。当通过单击按钮更新子图形时。然后错误弹出。我简化了问题并编写了一些测试代码,如下所示:

% 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
不知道该怎么办,因为错误信息太简短了。亚轴似乎只能绘制到特定的“轴”一次


任何帮助都将不胜感激。非常感谢。A.

从第二段代码的顶部删除以下两行:

axes(ax); 
cla(ax, 'reset');

现在,matlab将更新当前绘图中的图形。我已经在一个普通的(非GUI)matlab文件中测试过了,效果很好。如果它不适合您,请发布GUI的详细信息,因为其中可能存在一些相关问题。

谢谢您的回复。问题是我无法删除前两行。因为这是我的GUI的简化版本。我需要在一个指定的“轴”(例如示例中的“ax”)中绘制“subaxis”(包含子图形)。在我的GUI中有ax_1,ax_2。。。斧头。我使用axs(ax)命令指定“ax”是显示绘图的当前轴。好的,在这种情况下,您应该在这里发布GUI代码的完整或相关部分。