カラーバーは、サブプロット軸ではなく、Figure の子です (カラーバー自体が軸です)。試す
hc = get(hf, 'children')
Figure のすべての子のリストを取得しますhf
。 は Figure ハンドルです。hc
のどの要素があなたの と等しいかHc
、つまりどのカラーバーがどのようになるかわかりませんfirst
。
編集:
オブジェクトのハンドルを後で使用する必要がある場合は、オブジェクトの作成時に変数に割り当て、その変数全体を使用することをお勧めします。
ただし、これを行いたくない場合 (私は強くお勧めしますが)、できることを 2 つ考えます。これらは特に洗練されたものではなく、オブジェクト ハンドルを変数に代入するだけの作業です。
軸が作成された順序がわかっている場合は、幸運です。子のリストでは、最初に作成された子がリストの最後の要素であり、最後に作成された子が最初の要素です。例えば、
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
作成された2番目の子である最初のカラーバーが必要なので、次を使用できます
hc(end-2)
または、後で参照するカラーバーを作成するときに、そのプロパティを設定しtag
ます。上記の例では、行を置き換えます
hc1 = colorbar;
と
hc1 = colorbar('tag', 'myID');
その後、後でこのオブジェクトへのハンドルを取得できます
findobj(hf, 'type', 'axes', 'tag', 'myID')