Matlab 如何通过YLabel字符串查找轴?

Matlab 如何通过YLabel字符串查找轴?,matlab,Matlab,我正在创建一个具有多个子图的图形,并将其保存到文件中。像这样: fig = figure; ax1 = subplot(2, 1, 1); ax2 = subplot(2, 1, 2); ylabel(ax1, 'First'); ylabel(ax2, 'Second'); savefig('myfigure.fig') 稍后,我想将其中一个子地块复制到一个新地物,而无需重新运行创建地物的代码。我当前的方法是加载保存的地物,按其Y标签定位要复制的轴,然后将其复制到一个新地物: newfig

我正在创建一个具有多个子图的图形,并将其保存到文件中。像这样:

fig = figure;
ax1 = subplot(2, 1, 1);
ax2 = subplot(2, 1, 2);
ylabel(ax1, 'First');
ylabel(ax2, 'Second');
savefig('myfigure.fig')
稍后,我想将其中一个子地块复制到一个新地物,而无需重新运行创建地物的代码。我当前的方法是加载保存的地物,按其Y标签定位要复制的轴,然后将其复制到一个新地物:

newfig = figure;
oldfig = openfig('myfigure.fig');
ylabel_obj = findobj(oldfig, 'String', 'First');  % This is not givng me what I expect
old_axes_obj = ylabel_obj.Parent;
new_axes_obj = copyobj(old_axes_obj, newfig);
问题是上面的
findobj
没有找到YLabel。它只返回一个0x0空GraphicsPlaceholder数组。为什么
findobj
找不到我的YLabel?有没有更好的方法来找到我想要的轴?

标签文本对象的属性已关闭,因此它不会显示在其父轴的
子属性中,因此在使用时找不到。您可以改为使用以绕过此限制:

ylabel_obj = findall(oldfig, 'String', 'First');
或者,您可以将设置为
'on'
以列出所有对象句柄,而不管它们的
handleviability
属性设置如何,从而使
findobj
findall
等效