コールバック関数

コールバックとは、指定したGUI要素に対して定義されたアクションが実行されたときにトリガーされる関数のことです。

コールバック関数は、uicontrolの引数として渡され、ユーザー定義のルーチンやアクションを完了するために呼び出されます。

次の例では、押すと正弦曲線を描くpushbuttonを作成する手順を説明します。

  1. button_handleである新しい変数にuicontrol関数を割り当てます。
  2. uipanelのハンドルを親オブジェクトのハンドルとして定義します。
  3. normalizedを指定してunitsを決定します。
  4. 正規化された単位で、位置[0.02 0.05 0.2 0.05] を割り当てます。
  5. コントロールオブジェクトのスタイルをpushbuttonとして定義します。
  6. Plotのように、文字列オプションを使ってpushbuttonの名前を定義します。
  7. コールバック関数を @plot_curveに割り当てます。
  8. 正弦曲線をプロットし、2つの引数を取るコールバック関数を定義します。
clear all; close all; clc;
global panel1;
function plot_function(handles,callback)
     global slider_handle;
     freq_value = 1;
     t = [0:1/128:1];
     x = sin(2*pi*freq_value*t);
     plot(t,x);
end
f = figure('units','normalized','position',[0 0 0.9 0.9]);
panel1 = uipanel(f,'units','normalized','position',[0 0.1 0.99 0.89]);
axes('units', 'normalized', 'position', [0.2 0.15 0.7 0.7]);
button_handle = uicontrol(panel1,'style','pushbutton','units','normalized', ...
            'position',[0.02 0.1 0.17 0.05],'string','Plot',...
            'callback',@plot_function);

このコード例では、 Plotボタンをクリックすると、次のような正弦曲線を表示するGUIが作成されます: