定时器函数中的错误 (MATLAB R2014a)
An error in the timer function (MATLAB R2014a)
我卡在定时器功能的错误中了。虽然我尝试搜索,但没有找到答案。
function figure1_CreateFcn(hObject, eventdata, handles)
global t
t = timer( 'ExecutionMode', 'fixedRate', 'StartDelay',1, 'Period',1,'TasksToExecute',150);
t.TimerFcn = {@my_callback_fcn};
我得到的错误是:
Error while evaluating TimerFcn for timer 'timer-1'
Too many input arguments.
我的MATLAB版本是R2014a。 start
函数称为pushbutton2_Callback
函数。
我试图在对 timer
的调用中将 Period
更改为 1.0
,将 TasksToExecute
更改为 inf
或 TimerFcn
。它没有帮助。
有没有人可以帮助我?
错误是因为您提供的回调函数my_callback_fcn
没有两个输入参数。您有 两种可能性 来解决这个问题。只做一个:
在分配定时器回调时创建一个带有两个输入参数的匿名函数:
t.TimerFcn = {@(obj,event)my_callback_fcn};
向 my_callback_fcn
添加两个输入参数,因此该函数的第一行如下所示:
function my_callback_fcn(obj,event)
如果您在函数中不需要它们,您可以忽略带有 ~
的参数。因此,您的问题代码可能如下所示:
t = timer('ExecutionMode', 'fixedRate', 'StartDelay',1, 'Period',1, 'TasksToExecute',150);
t.TimerFcn = {@(~,~)my_callback_fcn};
Here 是关于计时器回调函数的更多信息。
地址 comment and 一个:
不要尝试同时应用这两种解决方案,因为那样您将向函数原型添加两个参数,然后不提供它。结果将是以下错误:
Error while evaluating TimerFcn for timer 'timer-1'
Not enough input arguments.
您只需要根据您在评论中发布的原型进行解决方案2。这是一个工作演示:
function timertest
t = timer('ExecutionMode', 'fixedRate', 'StartDelay',1, 'Period',1, 'TasksToExecute',150);
t.TimerFcn = {@my_callback_fcn};
start(t); pause on; pause; stop(t); delete(t);
function my_callback_fcn(handles,~)
handles;
disp('xy');
我卡在定时器功能的错误中了。虽然我尝试搜索,但没有找到答案。
function figure1_CreateFcn(hObject, eventdata, handles)
global t
t = timer( 'ExecutionMode', 'fixedRate', 'StartDelay',1, 'Period',1,'TasksToExecute',150);
t.TimerFcn = {@my_callback_fcn};
我得到的错误是:
Error while evaluating TimerFcn for timer 'timer-1'
Too many input arguments.
我的MATLAB版本是R2014a。 start
函数称为pushbutton2_Callback
函数。
我试图在对 timer
的调用中将 Period
更改为 1.0
,将 TasksToExecute
更改为 inf
或 TimerFcn
。它没有帮助。
有没有人可以帮助我?
错误是因为您提供的回调函数my_callback_fcn
没有两个输入参数。您有 两种可能性 来解决这个问题。只做一个:
在分配定时器回调时创建一个带有两个输入参数的匿名函数:
t.TimerFcn = {@(obj,event)my_callback_fcn};
向
my_callback_fcn
添加两个输入参数,因此该函数的第一行如下所示:function my_callback_fcn(obj,event)
如果您在函数中不需要它们,您可以忽略带有 ~
的参数。因此,您的问题代码可能如下所示:
t = timer('ExecutionMode', 'fixedRate', 'StartDelay',1, 'Period',1, 'TasksToExecute',150);
t.TimerFcn = {@(~,~)my_callback_fcn};
Here 是关于计时器回调函数的更多信息。
地址
不要尝试同时应用这两种解决方案,因为那样您将向函数原型添加两个参数,然后不提供它。结果将是以下错误:
Error while evaluating TimerFcn for timer 'timer-1'
Not enough input arguments.
您只需要根据您在评论中发布的原型进行解决方案2。这是一个工作演示:
function timertest
t = timer('ExecutionMode', 'fixedRate', 'StartDelay',1, 'Period',1, 'TasksToExecute',150);
t.TimerFcn = {@my_callback_fcn};
start(t); pause on; pause; stop(t); delete(t);
function my_callback_fcn(handles,~)
handles;
disp('xy');