Matlabコマンドウィンドウから、プロットに描画したオブジェクト(矢印、長方形、シミュレーションなど)の位置(つまり座標)を直接取得するにはどうすればよいですか?
4697 次
1 に答える
3
通常、これはハンドルグラフィックスプロパティを使用して行うことができます。例えば:
プロットを作成する
h = plot(1:10, rand(10,1));
次に、ポイントの実際の値を取得しますx = get(h、'xdata')y = get(h、'ydata')
オブジェクトの種類が異なれば、プロパティも異なります。探索する必要がある場合もあります。その場合、この構文は便利です。
get(h) %This displays all available properties on `h` to the command window
最後の便利なヒントは、gco
(「現在のオブジェクトを取得」)関数です。この関数は、プロットした、または手動でクリックした最後のアイテムのハンドルを提供します。これは、プロットされたアイテムがどこから来たのかわからない場合に役立ちます。
編集:
オブジェクトの子孫であるすべてのプロパティを検索するには、、findobj
またはのいずれかを使用しますfindall
。例えば:
findobj(gcf); %Returns all non-hidden, typical objects. This should be your first attempt.
findall(gcf); %Returns all children, even hidden object, such as titles, manually added annotations, and UI menus
この呼び出しにより、いくつかの一般的なUIアノテーションが削除されます
get(findall(gcf,'-not','type','uimenu','-not','type','uitoggletool','-not','type','uipushtool','-not','type','uitogglesplittool'),'type')
(おそらく、最後の例は適切に設計された正規表現で改善できるかもしれませんが、今はそれを機能させることができないようです。)
于 2012-02-20T16:53:41.047 に答える