【问题标题】:MATLAB GUI - How can I get programmatically whether an 'axis' object is empty or not?MATLAB GUI - 如何以编程方式获取“轴”对象是否为空?
【发布时间】:2013-09-23 10:41:31
【问题描述】:

我有一个 MATLAB GUI,其中有一个图形(一个“轴”对象)。 我想以编程方式知道该图形/轴中是否有绘图,因为我想添加一个“轴限制”控件。代码是:

if figure_is_empty
  axis([xMin xMax yMin yMax])
else
  'don t do anything, because there is nothing to resize'
end

有什么建议吗?

【问题讨论】:

    标签: matlab user-interface matlab-guide


    【解决方案1】:

    您可以使用figure 对象的CurrentAxes 属性:

    if ~isempty(get(gcf,'CurrentAxes'))
       axis([xMin xMax yMin yMax])
    else
      % don't do anything, because there is nothing to resize'
    end
    

    更多详情请见Figure properties

    【讨论】:

    • 如果有的话,你可能想用你的图形的句柄替换gcf
    【解决方案2】:

    假设 h 是您要检查的轴的句柄:

    ~isempty(get(h,'Children'));

    'Children' 包含坐标区中图形对象的句柄,因此如果您想更具体地检查(例如区分图像和绘图),您可以返回存在哪些类型的对象的列表。如果不存在子对象,这将返回空:

    get(get(h,'Children'),'Type')

    【讨论】:

    • 我曾想过这样做,但问题是Children 包含轴和所有其他 UI 内容。此外,如果轴的HandleVisibility 属性设置为off,则不会列出:“图形的子项。包含所有轴的句柄的向量,图形中显示的用户界面对象。您可以更改句柄的顺序,从而更改对象在显示器上的堆叠。当对象的 HandleVisibility 属性关闭时,它不会列在其父级的 Children 属性中。有关详细信息,请参阅 HandleVisibility。"
    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 1970-01-01
    相关资源
    最近更新 更多