【问题标题】:Matlab: getting figure handles into subplotsMatlab:将图形句柄放入子图中
【发布时间】:2014-05-20 03:29:51
【问题描述】:

我有两个图形手柄 h1 和 h2。我想将它们用作单个图中的子图并运行

figure
s1=subplot(211);
s2=subplot(212);
hc1=get(h1, 'children');
hcc1=get(hc1, 'children');
hc2=get(h2, 'children');
hcc2=get(hc2, 'children');
set(hcc1,'parent',s1);
set(hcc2,'parent',s2);

这适用于第一个数字,但不适用于第二个数字 (h2),我得到了错误

Error using set
Conversion to double from cell is not possible.

这两个数字除了细节是一样的,所以我不明白为什么。我尝试使用set(hc2,'parent',s2);,即“少一个父母”,还有一个,即hccc2=get(hcc2, 'children'); set(hcc2,'parent',s2);,但出现相同的错误。任何人都可以看到发生了什么?

【问题讨论】:

  • 你想从那些get 语句中得到什么类型的句柄?轴?线?另外,为什么不首先在子图中创建它们?
  • 句柄最初来自h1=figure 等,如前所述,它适用于第一个。是的,我正在考虑按照您的建议更改原始代码,但这是一项相当大的工作(原始代码播放“电影”,我想将其中的一些“屏幕截图”作为子图)。

标签: matlab parent children matlab-figure subplot


【解决方案1】:

要获取特定类型的对象句柄,请尝试使用findobj 来查找特定的'Type' 属性。例如,

ha1 = findobj(h1,'Type','axes');

但是,您可能只应用copyobj(而不是更改'parent':

copyobj(ha1,hf2)

这样您可以将坐标区 (ha1) 复制到新图形 (hf2)。您可以对任何图形元素执行相同操作,例如将绘图('Type' of 'line')复制到新坐标区。

【讨论】:

    猜你喜欢
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 2013-08-09
    • 2014-10-12
    • 1970-01-01
    • 2014-11-03
    • 2016-10-04
    • 2016-06-24
    相关资源
    最近更新 更多