Main Content

特定のコンポーネントに対するコールバック

メモ

GUIDE 環境は将来のリリースで削除される予定です。既存の GUIDE アプリは、GUIDE が削除された後も引き続き MATLAB® で動作しますが、GUIDE での編集はできません。

既存の GUIDE アプリを引き続き編集するには、将来の MATLAB リリースとの互換性維持に役立つ方法について、GUIDE の移行策を参照してください。新しいアプリを対話的に作成する場合は、代わりにApp Designer を使用したアプリ開発を参照してください。

UI コンポーネントの動作をコード化する作業には、操作するコンポーネントのタイプに固有のタスクが伴います。このトピックには、各タイプのコンポーネントに対応するコールバックの簡単な例がいくつかあります。コールバックのコード化についての一般情報は、GUIDE でのコールバックの作成またはプログラムで作成したアプリ用のコールバックの作成を参照してください。

コード例の使用方法

GUIDE を使用している場合は、レイアウト内のコンポーネントを右クリックし、[コールバックの表示] メニューから適切なコールバック プロパティを選択します。これにより、空のコールバック関数が作成され、自動的にコンポーネントに関連付けられます。GUIDE が作成する特定の関数名はコンポーネントの Tag プロパティに基づくので、実際の関数名がコード例の関数名とは少し異なる場合があります。GUIDE がコード内に作成した関数名を変更しないでください。作成しているアプリ内でコード例を使用するには、例の関数本体から自分の関数本体にコードをコピーします。

プッシュ ボタン

次のコードは、GUIDE におけるプッシュ ボタンのコールバック関数の例です。エンド ユーザーがプッシュ ボタンをクリックしたときに関数が実行されるようにするには、この関数をプッシュ ボタンの Callback プロパティに関連付けます。

function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
display('Goodbye');
close(gcf);

コードの第 1 行の display('Goodbye') は、コマンド ウィンドウに 'Goodbye' を表示します。次の行は、gcf を使用して UI ウィンドウを取得してから UI ウィンドウを閉じます。

トグル ボタン

次のコードは、GUIDE におけるトグル ボタンのコールバック関数の例です。エンド ユーザーがトグル ボタンをクリックしたときに関数が実行されるようにするには、この関数をトグル ボタンの Callback プロパティに関連付けます。

function togglebutton1_Callback(hObject,eventdata,handles)
% hObject    handle to togglebutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of togglebutton1
button_state = get(hObject,'Value');
if button_state == get(hObject,'Max')
	display('down');
elseif button_state == get(hObject,'Min')
	display('up');
end

トグル ボタンの Value プロパティは、トグル ボタンがクリックされていない状態のときに Min プロパティと同じになります。トグル ボタンが押されると、ValueMax の値に変わります。このコールバック関数は、トグル ボタンの Value プロパティを取得し、Max および Min のプロパティと比較します。ボタンが押された状態の場合、関数はコマンド ウィンドウに 'down' を表示します。ボタンが押されていない状態の場合、関数は 'up' を表示します。

ラジオ ボタン

次のコードは、GUIDE におけるラジオ ボタンのコールバック関数の例です。エンド ユーザーがラジオ ボタンをクリックしたときに関数が実行されるようにするには、この関数をラジオ ボタンの Callback プロパティに関連付けます。

function radiobutton1_Callback(hObject, eventdata, handles)
% hObject    handle to radiobutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of radiobutton1

if (get(hObject,'Value') == get(hObject,'Max'))
	display('Selected');
else
	display('Not selected');
end

ラジオ ボタンの Value プロパティは、ラジオ ボタンがオフのときに Min プロパティと同じになります。ラジオ ボタンがオンになると、ValueMax の値に変わります。このコールバック関数は、ラジオ ボタンの Value プロパティを取得し、Max および Min のプロパティと比較します。ボタンがオンの場合、関数はコマンド ウィンドウに 'Selected' を表示します。ボタンがオフの場合、関数は 'Not selected' を表示します。

メモ

ラジオ ボタンの排他的な選択動作を管理するには、ボタン グループを使用します。詳細は、ボタン グループを参照してください。

チェック ボックス

次のコードは、GUIDE におけるチェック ボックスのコールバック関数の例です。エンド ユーザーがチェック ボックスをクリックしたときに関数が実行されるようにするには、この関数をチェック ボックスの Callback プロパティに関連付けます。

function checkbox1_Callback(hObject, eventdata, handles)
% hObject    handle to checkbox1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of checkbox1

if (get(hObject,'Value') == get(hObject,'Max'))
	display('Selected');
else
	display('Not selected');
end

チェック ボックスの Value プロパティは、チェック ボックスがオフのときに Min プロパティと同じになります。チェック ボックスがオンになると、ValueMax の値に変わります。このコールバック関数は、チェック ボックスの Value プロパティを取得し、Max および Min のプロパティと比較します。チェック ボックスがオンの場合、関数はコマンド ウィンドウに 'Selected' を表示します。チェック ボックスがオフの場合は 'Not selected' を表示します。

エディット テキスト フィールド

次のコードは、GUIDE でのエディット テキスト フィールドのコールバックの例です。この関数を uicontrol の Callback プロパティと関連付けて、エンド ユーザーがテキスト フィールドに入力したときに実行されるようにします。

function edit1_Callback(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text
%        str2double(get(hObject,'String')) returns contents as double
input = get(hObject,'String');
display(input);

テキスト フィールド内に文字を入力して Enter キーを押すと、コールバック関数はそれらの文字を取得し、それをコマンド ウィンドウに表示します。

複数行のテキストを入力可能にするには、MaxMin のプロパティを、Max - Min > 1 を満たす数値に設定します。たとえば、この不等式を満たすように、Max2 に、Min0 に設定します。この例では、エンド ユーザーが UI のテキスト フィールドの外側にある領域をクリックすると、コールバック関数がトリガーされます。

数値の取得

エディット テキスト フィールドの内容を数値として解釈する場合は、関数 str2double を使用して文字を数値に変換します。数値以外の入力では、関数 str2doubleNaN を返します。

次のコードは、ユーザー入力を数値として解釈するエディット テキスト フィールドのコールバック関数の例です。

function edit1_Callback(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text
% str2double(get(hObject,'String')) returns contents as a double
input = str2double(get(hObject,'String'));
if isnan(input)
  errordlg('You must enter a numeric value','Invalid Input','modal')
  uicontrol(hObject)
  return
else
  display(input);
end

エンド ユーザーがエディット テキスト フィールド内に値を入力して Enter キーを押すと、コールバック関数が String プロパティの値を取得して数値に変換します。次に、値が NaN (非数値) かどうかを検査します。入力が NaN である場合、コールバックはエラー ダイアログ ボックスを表示します。

スライダー

次のコードは、GUIDE におけるスライダーのコールバック関数の例です。エンド ユーザーがスライダーを移動したときに関数が実行されるようにするには、この関数をスライダーの Callback プロパティに関連付けます。

function slider1_Callback(hObject, eventdata, handles)
% hObject    handle to slider1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'Value') returns position of slider
%        get(hObject,'Min') and get(hObject,'Max') to determine...
slider_value = get(hObject,'Value');
display(slider_value);

エンド ユーザーがスライダーを移動すると、コールバック関数がスライダーの現在の値を取得し、コマンド ウィンドウに表示します。スライダーの既定の範囲は [0, 1] です。範囲を変更するには、スライダーの Max プロパティを最大値、Min プロパティを最小値に設定します。

リスト ボックス

リスト ボックス内の項目の事前設定

GUIDE を使用してアプリを開発している場合、リスト ボックスに項目を追加するには、リスト ボックスの CreateFcn コールバックを使用します。

次のコードは、リスト ボックスの CreateFcn コールバックの例であり、リスト ボックスに項目 RedGreenBlue を事前設定するものです。

function listbox1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to listbox1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns

% Hint: listbox controls usually have a white background on Windows.
if ispc && isequal(get(hObject,'BackgroundColor'), ...
    get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
set(hObject,'String',{'Red';'Green';'Blue'});
最終行 set(hObject,'String',{'Red';'Green';'Blue'}) がリスト ボックスの内容を事前設定します。

選択済み項目の変更

エンド ユーザーがリスト ボックスの項目を選択すると、リスト ボックスの Value プロパティが、リスト内の項目の位置に対応する数値に変わります。たとえば、値 1 はリストの最初の項目に対応しています。コード内で選択項目を変更する場合は、1 からリスト内の項目数までの範囲で、Value プロパティを別の数値に変更します。

たとえば、GUIDE で handles 構造体を使用すると、リスト ボックスにアクセスして Value プロパティを変更できます。

set(handles.listbox1,'Value',2)

最初の引数 handles.listbox1 は、リスト ボックスの Tag プロパティの値により、実際のコード内では異なる場合があります。

コールバック関数の作成

次のコードは、GUIDE におけるリスト ボックスのコールバック関数の例です。エンド ユーザーがリスト ボックス内の項目を選択したときに関数が実行されるようにするには、この関数をリスト ボックスの Callback プロパティに関連付けます。

function listbox1_Callback(hObject, eventdata, handles)
% hObject    handle to listbox1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns contents
% contents{get(hObject,'Value')} returns selected item from listbox1
items = get(hObject,'String');
index_selected = get(hObject,'Value');
item_selected = items{index_selected};
display(item_selected);

エンド ユーザーがリスト ボックス内の項目を選択すると、コールバック関数が次のタスクを実行します。

  • リスト ボックス内のすべての項目を取得し、変数 items に格納する。

  • 選択された項目の数値インデックスを取得し、変数 index_selected に格納する。

  • 選択された項目の値を取得し、変数 item_selected に格納する。

  • 選択された項目を MATLAB コマンド ウィンドウに表示する。

GUIDE の対話型リスト ボックスのアプリでは、リスト ボックスにディレクトリ名を事前設定する方法を説明しています。

ポップアップ メニュー

ポップアップ メニューの項目の事前設定

GUIDE を使用してアプリを開発している場合、ポップアップ メニューに項目を追加するには、ポップアップ メニューの CreateFcn コールバックを使用します。

次のコードは、ポップアップ メニューの CreateFcn コールバックの例であり、ポップアップ メニューに項目 RedGreenBlue を事前設定するものです。

function popupmenu1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to popupmenu1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns

% Hint: popupmenu controls usually have a white background on Windows.
if ispc && isequal(get(hObject,'BackgroundColor'),...
    get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
set(hObject,'String',{'Red';'Green';'Blue'});
最終行 set(hObject,'String',{'Red';'Green';'Blue'}) がポップアップ メニューの内容を事前設定します。

選択済み項目の変更

エンド ユーザーが項目を選択すると、ポップアップ メニューの Value プロパティが、ポップアップ メニュー内の項目の位置に対応する数値に変わります。たとえば、値 1 はリストの最初の項目に対応しています。コード内で選択項目を変更する場合は、1 からポップアップ メニュー内の項目数までの範囲で、Value プロパティを別の数値に変更します。

たとえば、GUIDE で handles 構造体を使用すると、ポップアップ メニューにアクセスして Value プロパティを変更できます。

set(handles.popupmenu1,'Value',2)

最初の引数 handles.popupmenu1 は、ポップアップ メニューの Tag プロパティの値により、実際のコード内では異なる場合があります。

コールバック関数の作成

次のコードは、GUIDE におけるポップアップ メニューのコールバック関数の例です。エンド ユーザーがポップアップ メニューから項目を選択したときに関数が実行されるようにするには、この関数をポップアップ メニューの Callback プロパティに関連付けます。

function popupmenu1_Callback(hObject, eventdata, handles)
% hObject    handle to popupmenu1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: contents = cellstr(get(hObject,'String')) returns contents...
%        contents{get(hObject,'Value')} returns selected item...
items = get(hObject,'String');
index_selected = get(hObject,'Value');
item_selected = items{index_selected};
display(item_selected);

ユーザーがポップアップ メニュー内の項目を選択すると、コールバック関数が次のタスクを実行します。

  • ポップアップ メニュー内のすべての項目を取得し、変数 items に格納する。

  • 選択された項目の数値インデックスを取得し、変数 index_selected に格納する。

  • 選択された項目の値を取得し、変数 item_selected に格納する。

  • 選択された項目を MATLAB コマンド ウィンドウに表示する。

パネル

ボタンのクリックに対するパネルの応答

エンド ユーザーがパネル上で右クリックするか、左クリックするときに実行されるコールバック関数を作成できます。GUIDE を使用している場合は、レイアウト内のパネルを右クリックし、[コールバックの表示][ButtonDownFcn] を選択して、コールバック関数を作成します。

次のコードは、GUIDE における ButtonDownFcn コールバックの例です。

function uipanel1_ButtonDownFcn(hObject, eventdata, handles)
% hObject    handle to uipanel1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
display('Mouse button was pressed');
エンド ユーザーがパネル上でクリックすると、この関数はコマンド ウィンドウにテキスト 'Mouse button was pressed' を表示します。

ウィンドウとパネルのサイズ変更

既定では GUIDE UI はサイズを変更できませんが、この動作は [ツール][GUI オプション] を選択して [サイズ変更の動作][比例 (プロポーショナル)] に設定することでオーバーライドできます。

UI ウィンドウのサイズが変更可能な場合、変更したサイズに合わせて、ウィンドウ内のコンポーネントの位置が調整されます。UI にパネルがある場合、パネルのサイズもウィンドウのサイズに合わせて変更されます。パネルのサイズ変更時にアプリで特定のタスクを実行させるには、パネルの SizeChangedFcn コールバックを使用します。

次のコードは、GUIDE アプリにおけるパネルの SizeChangedFcn コールバックの例です。ユーザーがウィンドウのサイズを変更すると、この関数はパネル内のスタティック テキストのフォント サイズを変更します。

function uipanel1_SizeChangedFcn(hObject, eventdata, handles)
% hObject    handle to uipanel1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
set(hObject,'Units','Points')               
panelSizePts = get(hObject,'Position');     
panelHeight = panelSizePts(4);
set(hObject,'Units','normalized');          
newFontSize = 10 * panelHeight / 115;       
texth = findobj('Tag','text1');
set(texth,'FontSize',newFontSize);

UI に入れ子にされたパネルが含まれる場合、内側から外側へ (子から親の順に) サイズが変更されます。

メモ

パネル内のテキストのサイズを自動的に変更するには、fontUnits プロパティを 'normalized' に設定します。

ボタン グループ

ボタン グループはパネルに類似していますが、ラジオ ボタンやトグル ボタンでの排他選択も処理できます。ボタン グループにラジオ ボタンまたはトグル ボタンが複数ある場合、ボタン グループによりこれらのうちの 1 つのみが選択可能になります。

ボタン グループ内の個々のボタンについてコールバックのコードを作成しないでください。代わりに、ボタン グループの SelectionChangedFcn コールバックを使用して、エンド ユーザーがボタンを選択したときの応答を作成してください。

次のコードは、2 つのラジオ ボタンと 2 つのトグル ボタンを処理するボタン グループの SelectionChangedFcn コールバックの例です。

function uibuttongroup1_SelectionChangedFcn(hObject, eventdata, handles)
% hObject    handle to the selected object in uibuttongroup1 
% eventdata  structure with the following fields
%	EventName: string 'SelectionChanged' (read only)
%	OldValue: handle of the previously selected object or empty
%	NewValue: handle of the currently selected object
% handles    structure with handles and user data (see GUIDATA)
switch get(eventdata.NewValue,'Tag') % Get Tag of selected object.
    case 'radiobutton1'
        display('Radio button 1');
    case 'radiobutton2'
        display('Radio button 2');
    case 'togglebutton1'
        display('Toggle button 1');
    case 'togglebutton2'
        display('Toggle button 2');
end

ボタン グループのラジオ ボタンまたはトグル ボタンをエンド ユーザーが選択すると、この関数はボタンの Tag プロパティに基づいて、エンド ユーザーが選択したボタンを特定します。次に、適切な case 内のコードを実行します。

メモ

ボタン グループの SelectedObject プロパティには、ユーザーが選択したボタンのハンドルが含まれます。コード内の任意の場所でこのプロパティを使用して、ユーザーが選択したボタンを特定できます。

メニュー項目

この節のコードには、エンド ユーザーがこのメニューの [Edit][Copy][To File] を選択したときに応答するコールバック関数の例が含まれています。

Figure window with a menu bar. The menu has two options, "File" and "Edit". The "Edit" option is selected and contains a submenu with items "Cut", "Copy", and "Paste". The "Copy" option is highlighted and contains another submenu with one item, "To File".

% --------------------------------------------------------------------
function edit_menu_Callback(hObject, eventdata, handles)
% hObject    handle to edit_menu (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
display('Edit menu selected');

% --------------------------------------------------------------------
function copy_menu_item_Callback(hObject, eventdata, handles)
% hObject    handle to copy_menu_item (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
display('Copy menu item selected');

% --------------------------------------------------------------------
function tofile_menu_item_Callback(hObject, eventdata, handles)
% hObject    handle to tofile_menu_item (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
[filename,path] = uiputfile('myfile.m','Save file name');
実際のコードでは、GUIDE メニュー エディターで指定したタグ名により、関数名が異なる場合があります。

コールバック関数は、次の操作に応答してトリガーされます。

  • エンド ユーザーが [Edit] メニューを選択すると、関数 edit_menu_Callback がテキスト 'Edit menu selected' を MATLAB コマンド ウィンドウに表示します。

  • エンド ユーザーがポインターを [Copy] メニュー項目に合わせると、関数 copy_menu_item_Callback がテキスト 'Copy menu item selected' を MATLAB コマンド ウィンドウに表示します。

  • エンド ユーザーがポインターを [To File] メニュー項目に合わせてマウス ボタンをクリックして離すと、関数 tofile_menu_item_Callback がコピー先のフォルダーとファイル名を選択するようにエンド ユーザーを促すダイアログ ボックスを表示します。

関数 tofile_menu_item_Callback が、コピー先のファイルとフォルダーを指定するようにエンド ユーザーを促す関数 uiputfile を呼び出します。エンド ユーザーに既存ファイルの入力を促すメニュー項目を作成する場合、たとえば UI に [Open File] メニュー項目がある場合は、関数 uigetfile を使用します。

このようなカスケード メニューを作成する場合、ポインターを中間のメニュー項目に合わせるとそのメニュー項目がトリガーされます。最後の終了メニュー項目は、そのメニュー項目上でマウス ボタンを離すとトリガーされます。

メニュー項目のチェック状態を更新する方法

オプションが有効であることを示すチェック マークを、メニュー項目の隣に追加できます。GUIDE では、メニュー エディターの [この項目にチェック マークを入れる] を選択して、メニュー項目を既定でチェックされた状態にすることができます。エンド ユーザーがメニュー項目を選択するたびに、コールバック関数はチェックのオンとオフを切り替えることができます。

次のコードは、メニュー項目の隣にあるチェック マークを変更する方法を説明します。

if strcmp(get(hObject,'Checked'),'on')
    set(hObject,'Checked','off');
else 
    set(hObject,'Checked','on');
end

関数 strcmp が 2 つの文字ベクトルを比較し、一致する場合は true を返します。この例では、メニュー項目の Checked プロパティが文字ベクトル 'on' と一致する場合に true を返します。

GUIDE でのメニュー項目の作成についての詳細は、GUIDE アプリのメニューの作成を参照してください。

テーブル

次のコードは、テーブルのコールバック関数 CellSelectionCallback の例です。エンド ユーザーがテーブル内のセルを選択したときに関数が実行されるようにするには、この関数をテーブルの CellSelectionCallback プロパティに関連付けます。

function uitable1_CellSelectionCallback(hObject, eventdata, handles)
% hObject    handle to uitable1 (see GCBO)
% eventdata  structure with the following fields
%   Indices: row and column indices of the cell(s) currently selected
% handles    structure with handles and user data (see GUIDATA)
data = get(hObject,'Data');
indices = eventdata.Indices;
r = indices(:,1);
c = indices(:,2);
linear_index = sub2ind(size(data),r,c);
selected_vals = data(linear_index);
selection_sum = sum(sum(selected_vals))

エンド ユーザーがテーブル内のセルを選択すると、この関数が次のタスクを実行します。

  • テーブル内のすべての値を取得し、変数 data に格納する。

  • 選択したセルのインデックスを取得する。これらのインデックスは、data 内の行と列に対応します。

  • 行と列のインデックスを線形インデックスに変換する。線形インデックスにより、1 つのコマンドで配列内の複数の要素を選択できます。

  • エンド ユーザーが選択した値を取得し、変数 selected_vals に格納する。

  • 選択したすべての値を合計し、その結果をコマンド ウィンドウに表示する。

次のコードは、テーブルのコールバック関数 CellEditCallback の例です。エンド ユーザーがテーブル内のセルを編集したときに関数が実行されるようにするには、この関数をテーブルの CellEditCallback プロパティに関連付けます。

function uitable1_CellEditCallback(hObject, eventdata, handles)
% hObject    handle to uitable1 (see GCBO)
% eventdata  structure with the following fields
%	Indices: row and column indices of the cell(s) edited
%	PreviousData: previous data for the cell(s) edited
%	EditData: string(s) entered by the user
%	NewData: EditData or its converted form set on the Data property.
% Empty if Data was not changed
% Error: error string when failed to convert EditData
data = get(hObject,'Data');
data_sum = sum(sum(data))
エンド ユーザーがテーブル セルの編集を完了すると、この関数がテーブル内のすべての値を取得し、テーブルのすべての値の合計を計算します。テーブル内のセルをエンド ユーザーが編集するには、少なくとも 1 つの列で ColumnEditable プロパティを true に設定しなければなりません。

座標軸

この節のコードは、エンド ユーザーが座標軸をクリックしたときにトリガーされる Axes の ButtonDownFcn プロパティの例です。

Axes in a figure window

function axes1_ButtonDownFcn(hObject, eventdata, handles)
% hObject    handle to axes1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
pt = get(hObject,'CurrentPoint')
エンド ユーザーが座標軸をクリックすると、ポインターの座標が MATLAB コマンド ウィンドウに表示されます (ただし、その Axes を親とする別のグラフィックス オブジェクトをクリックした場合は表示されません)。

メモ

MATLAB プロット関数のほとんどは、座標軸をクリアして ButtonDownFcn などのさまざまな座標軸のプロパティをリセットしてから、データをプロットします。エンド ユーザーがデータを対話モードでプロットできるインターフェイスを作成するには、プロットをコントロールするプッシュ ボタンなどのコンポーネントの提供を検討してください。そのようなコンポーネントのプロパティは、プロット関数の影響を受けません。データのプロットに Axes の ButtonDownFcn を使用しなければならない場合は、linepatchsurface などの関数を使用してください。

関連するトピック