2016-12-25 2 views
0

Matlab GUIDEを使用してGUIで現在の軸のタグを取得したいとします。現在の軸のタグを取得したい

次のコードは、空の行列を返します。

​​
+0

'handle = gca'を使うと、新しいFigureウィンドウが開きますか? – excaza

+0

実際にはこれをコールバックで使用しており、GUIはガイドを使用して作成されています。 –

+0

余分なウィンドウが開かない –

答えて

0

figureおよび/またはaxesのGUIのプロパティHandleVisibilityをオフ」に設定されているので、あなたは空行列を取得しているために可能な理由は以下のようになり`。

axesオブジェクトのTagプロパティと、GUI内の他のオブジェクトのプロパティを取得するには、HandleVisibilityプロパティは `on 'でなければなりません。 dot notation

% Get the current axes with the "dot notation" 
c_ax=gca 
c_ax.Tag 
を使用することにより get機能

% Get the current axes tag 
get(gca,'tag') 

を使用することにより

:このプロパティはonたら

は、GUIコールバック内軸のTagを取得するためのいくつかのオプションがあります

GUIにaxesが複数ある場合は、すべてaxes hanldesを取得するためのfindobj機能を電子、そして、あなたが取得するforループを使用することができますTag:それは、デフォルトでは、普通の

% Get the handle of all the axes object in the GUI 
ax_list=findobj(gcf,'type','axes') 
% Get the tagf of all the axes object in the GUI 
for i=1:length(ax_list) 
    ax_list(i).Tag 
end 
+0

Axesプロパティインスペクタを開き、Visibleプロパティがオン/チェックされています。 –

+0

'Visible'プロパティはGUIオブジェクトの表示/非表示に使用され、' HandleVisibility'プロパティをチェックする必要があります。コールバックコードにソリューションの1つを挿入しようとしましたか? –

+0

c_ax = gca; c_ax。Tagは空の行列を返します。図形に58個のデータセットを表示しなければならないので、一度に15個のデータセットを表示するために15個の軸を使用し、次と戻るボタンで残りを表示します。ユーザーは任意の軸をランダムに選択して、マウスでデータ制限を設定できます。どの軸が選択されているのかを知る必要があり、ginputを介して受け取った制限を使用し、その特定の軸のデータを変更できるようにする必要があります。軸がクリックされたときにタグがわかっていれば、それ以外の場合はデータセットインジケータで軸情報を取得し、軸位置属性は –

-1

、タグが値を(それが返す '「)がありません。あなたが何か他のものを望むなら、その値をsthに設定しなければなりません。

P.S. getとsetの代わりに、matlab 2016でgcaプロパティにドットでアクセスできます。

EDIT:

まず第一に、あなたはそれぞれのサブ画像またはサブプロット用のタグを設定する必要があります。ここでは

for (range of subplots) 
    subplot(m,n, number) % m and n are constants 
    set(gca,'Tag',num2str(number)); 
end 

は、コードとの良好な答えです:

https://de.mathworks.com/matlabcentral/answers/172565-how-to-get-the-subplot-number-by-clicking-on-it

+0

GUIDEオブジェクトに自動的にタグが付けられます。 – excaza

+0

figureに15軸がある場合、どの軸がクリックされているかを一意に識別できますか?これは私がwaitforbuttonpress関数を使用しているクリックされている軸の一意のIDを知るために重要です。 1つの方法(おそらく使用します)は、もちろんユニークな軸の位置を取得し、どの軸がクリックされたかを確認することです。しかし、私たちには他の解決策がありますか? –

+0

これらの軸はGUIDEまたはプログラムによって作成された質問に答えてください。タグ ''を取得した場合は、プログラムで実行されると仮定します。この場合、各軸を作成するときにタグを識別することができます。位置や色を識別する方法と同じです。 – Adiel

関連する問題