40

Figure ハンドル内のすべての軸ハンドルを取得するにはどうすればよいですか?

Figure handleを指定すると、すべての軸のハンドルが返される可能性があることがhfわかりました。get(hf, 'children')ただし、Matlab ヘルプでは、Axes ハンドル以外のものが返される可能性があることが示唆されています。

図の子。Figure 内に表示されるすべての軸、ユーザー インターフェイス オブジェクトのハンドルを含むベクトル。ハンドルの順序を変更して、ディスプレイ上のオブジェクトのスタックを変更できます。

Figure ハンドルで軸ハンドルのみを取得する方法はありますか? get(hf, 'children')あるいは、 によって返されたハンドルが斧のハンドルかどうかはどうすればわかりますか?

ありがとう!

4

4 に答える 4

44

FINDALLを使用します:

allAxesInFigure = findall(figureHandle,'type','axes');

Matlabの任意の場所ですべての軸ハンドルを取得する場合は、次のようにすることができます。

allAxes = findall(0,'type','axes');

編集

質問の2番目の部分に答えるには、handlestypeプロパティを取得することで、ハンドルのリストが軸であるかどうかをテストできます。

isAxes = strcmp('axes',get(listOfHandles,'type'));

isAxesタイプのすべてのハンドルに当てはまりますaxes

EDIT2

凡例ではない軸ハンドルのみを選択するには、軸のリストをクリーンアップする必要があります(axタグがないすべてのハンドルを削除することによるハンドル'legend'または'Colorbar'

axNoLegendsOrColorbars= ax(~ismember(get(ax,'Tag'),{'legend','Colobar'}))
于 2010-10-14T23:32:43.520 に答える