AppDesigner で timer オブジェクト・コールバックを実装するポイントとして、以下の 2 点があります。
1. Timer オブジェクトのコールバック関数の入力引数には、次の3 つ(app, obj, event) が必要です。
function mytimer_fun(app, obj, event)
このとき、'app' は、app オブジェクトのハンドル、'obj' は、timer オブジェクトのハンドル、’event’ はtimer イベントのためのイベントデータです。
さらにTimer のコールバック関数に入力を与えたい場合には、第4入力引数として与えます。
function mytimer_fun(app, obj, event, string_arg)
2. App 内のプライベート関数を Timer オブジェクトのコールバックに指定したい場合には、"@app.mytimer_fun" のように "app" を付けて指定します。
例:
function startupFcn(app)
app.update_timer = timer('Period', 1,...
'ExecutionMode', 'fixedSpacing', ...
'TasksToExecute', Inf, ...
'TimerFcn', @app.mytimer_fun); %コールバック
end
質問文にあるコマンドを修正すると次のとおりです。
methods (Access = private)
function mytimer_fun(app, obj, event)
% Timer で指定するコールバック関数
disp('Timer!!!!')
end
end properties (Access = private)
% Timer object 用
update_timer
end
methods (Access = private)
% Code that executes after component creation
function startupFcn(app)
app.update_timer = timer('Period', 1,...
'ExecutionMode', 'fixedSpacing', ...
'TasksToExecute', Inf, ...
'TimerFcn', @app.mytimer_fun); %コールバック
end
% Button pushed function: STARTButton
function STARTButtonPushed(app, event)
start(app.update_timer)
end
% Button pushed function: STOPButton
function STOPButtonPushed(app, event)
stop(app.update_timer)
delete(app.update_timer)
end
end
関連する内容が、下記 URL からご覧いただけます。
・プログラムによる App Designer への UI コンポーネントの追加