您的颜色条是图形的子项,而不是子图轴的子项(颜色条本身就是轴)。试试
hc = get(hf, 'children')
获取图窗所有子代的列表,其中hf 是图窗句柄。我不确定hc 的哪个元素等于Hc,即first 颜色条。
编辑:
如果您以后需要使用对象的句柄,最好在创建时将其分配给一个变量,并始终使用该变量。
但是,如果您不想这样做(尽管我强烈建议您这样做),我可以想到您可以做的两件事。它们并不是特别优雅,而且肯定比将对象句柄分配给变量需要更多的工作。
如果您知道轴的创建顺序,那么您很幸运:在子列表中,创建的第一个子元素是列表中的 last 元素,最后创建的子元素是第一个。例如,
hf = figure;
ha1 = subplot(1,2,1);
image(rand(5,5));
hc1 = colorbar;
ha2 = subplot(1,2,2);
image(rand(5,5));
hc2 = colorbar;
hcs = get(hf, 'children')
hcs =
206.0016
204.0011
176.0016
174.0011
[hc2, ha2, hc1, ha1]'
ans =
206.0016
204.0011
176.0016
174.0011
由于您想要第一个颜色条,也就是创建的第二个子项,因此您可以使用
hc(end-2)
或者,在创建您希望将来引用的颜色条时,将其设置为tag 属性。在上面的例子中,替换行
hc1 = colorbar;
与
hc1 = colorbar('tag', 'myID');
然后您可以稍后使用
获取此对象的句柄
findobj(hf, 'type', 'axes', 'tag', 'myID')