有人能解释一下这个Matlab代码中的函数句柄是如何工作的吗

有人能解释一下这个Matlab代码中的函数句柄是如何工作的吗,matlab,handle,function-handle,Matlab,Handle,Function Handle,有人能解释一下这个代码中的函数句柄是如何工作的吗!目前,代码没有跳转到函数,我正在尝试修复它。你能解释一下,我怎么能不用函数句柄写同样的代码。这段代码是为MatlabGUI编写的 %... handles.Data.Audio.TimerFcn={@TimerFcn, handles}; %... function TimerFcn(audio,~,handles) set(handles.Graphics.Line(2,handles.AudioNum),'XData',handles.Dat

有人能解释一下这个代码中的函数句柄是如何工作的吗!目前,代码没有跳转到函数,我正在尝试修复它。你能解释一下,我怎么能不用函数句柄写同样的代码。这段代码是为MatlabGUI编写的

%...
handles.Data.Audio.TimerFcn={@TimerFcn, handles};
%...
function TimerFcn(audio,~,handles)
set(handles.Graphics.Line(2,handles.AudioNum),'XData',handles.Data.TS.Time((handle.Data.k+1)*handles.Data.fs+audio.CurrentSample*[1,1]));
set(handles.Graphics.Line(2,handles.AudioNum),'Color' , 'y');
guidata(handles.Fig,handles);

所以代码使用了“TimerFcn”函数的函数句柄,我真的不明白它是如何工作的。因此,我无法修复该错误。

handles
不是一个函数,而是一个在MATLAB GUI中存储有关元素信息的结构

代码的其余部分应该有助于解决您的问题。我对您发布的代码的理解是,您正在为
Data.Audio
中的对象分配函数
TimerFcn
。因此,如果未达到函数
TimerFcn
,是因为负责此函数的对象未设法运行它,例如,如果它是一个在运行此函数之前必须等待X秒的计时器,则可能未正确设置(或可能是等待时间太长)


希望我能帮助您理解这个问题。

该函数似乎是从
计时器调用的。。。您必须查看
计时器本身的属性才能知道它是否调用函数never。。。一旦或者反复。是否定义了
计时器,但从未启动?