In App Designer I'm having trouble assigning a function handle to TimerFcn.
29 ビュー (過去 30 日間)
I'm kind of a newby with App Designer and having trouble assigning a function handle to TimerFcn.
I know the Timer is set up properly because the line:
app.myTimer.TimerFcn = @(~,~)disp('do something'); works fine.
But when I use:
app.myTimer.TimerFcn = @Timer_func; I get "Undefined function 'Timer_func' for input arguments of type 'timer' ".
But the function is in fact defined:
methods (Access = private)
if app.tval == "Green"
app.tval = 'Red';
elseif app.tval == "Red"
app.tval = 'Green';
app.TimerLamp.Value = app.tval;
Greg 2018 年 11 月 30 日
編集済み: Greg 2018 年 11 月 30 日
You missed the second half of the error message: "Undefined function 'Timer_func' for input arguments of type 'timer'." Apps in AppDesigner are classdefs, meaning the app is a class. When you define a method inside the .MLAPP file, you've defined it for "input arguments of type [your app]," which means variables like timers can't see that function. Move Timer_func out of the .MLAPP into its own .M or .MLX file on your MATLAB path.
Or, since you appear to need app itself inside the timer callback, use