gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 19:54:27 24 4
gpt4 key购买 nike

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

fig = figure;
ax1 = subplot(2, 1, 1);
ax2 = subplot(2, 1, 2);
ylabel(ax1, 'First');
ylabel(ax2, 'Second');
savefig('myfigure.fig')

稍后,我想将其中一个子图复制到一个新图形中,而无需重新运行创建该图形的代码。我目前的做法是加载保存的图形,通过它的 YLabel 定位我想要复制的轴,然后将它复制到一个新的图形:

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?有没有更好的方法来找到我想要的轴?

最佳答案

handle visibility因为标签文本对象已关闭,所以它不会出现在其父轴的 Children 属性中,因此在使用 findobj 时不会被发现。 .您可以改为使用 findall绕过这个限制:

ylabel_obj = findall(oldfig, 'String', 'First');

或者,您可以设置 root ShowHiddenHandles property'on' 列出所有对象句柄,而不考虑它们的 HandleVisibility 属性设置,使 findobjfindall 等效。

关于matlab - 如何通过 YLabel 字符串查找轴?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52974500/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com