主要内容

回调函数定义

指定回调的方法

若要使用回调属性,请将回调代码分配给属性。使用下列技巧之一:

  • 引用要执行的函数的函数句柄。

  • 包含函数句柄和附加参数的单元格数组

  • 一个字符向量,计算到一个有效的MATLAB®表达式。MATLAB在基本工作空间中计算字符向量。

不建议将回调定义为字符向量。使用指定为函数句柄的函数使MATLAB能够为回调函数提供重要信息。

有关更多信息,请参见回调函数的语法

回调函数的语法

图形回调函数必须接受至少两个输入参数:

  • 正在执行回调的对象的句柄。在回调函数中使用这个句柄来引用回调对象。

  • 事件数据结构,对于某些回调,该结构可以为空,或者包含在该对象的属性描述中描述的特定信息。

当回调作为特定触发操作的结果执行时,MATLAB调用回调函数并将这两个参数传递给函数。

例如,定义一个被调用的回调函数lineCallback控件创建的行情节函数。与lineCallback函数的MATLAB路径,使用将函数句柄赋给ButtonDownFcn属性创建的每一行情节

情节(x, y,“ButtonDownFcn”@lineCallback)

定义回调函数接受两个输入参数。使用第一个参数来引用正在执行回调的特定行。使用此参数设置行颜色属性:

函数lineCallback src (src ~)。颜色=“红色”;结束

的第二个参数为空ButtonDownFcn回调。的~字符表示不使用此参数。

传递额外的输入参数

要为回调函数定义额外的输入参数,请将参数添加到函数定义中,保持默认参数和额外参数的正确顺序:

函数lineCallback (evt src __arg1、最长)src。颜色=“红色”;src。线型= __arg1;src。标志=最长;结束

将包含函数句柄和附加参数的单元格数组赋给属性:

情节(x, y,“ButtonDownFcn”, {@lineCallback,“——”‘*’})

您可以使用匿名函数来传递额外的参数。例如:

情节(x, y,“ButtonDownFcn”...@ (src, eventdata) lineCallback (src, eventdata“——”‘*’))

相关信息

有关使用匿名函数的信息,请参见匿名函数

有关使用类方法作为回调的信息,请参见图形回调的类方法

有关MATLAB如何解决多个回调执行的信息,请参阅BusyAction可中断定义回调的对象的属性。

将Callback定义为Default

您可以为特定对象的属性分配回调,也可以为该类型的所有对象定义默认回调。

定义一个ButtonDownFcn对于所有行对象,在根级别设置默认值。

  • 使用大的函数指定对象层次结构的根级别。

  • 定义一个在MATLAB路径上的回调函数。

  • 将函数句柄引用此函数defaultLineButtonDownFcn

集(大的,“defaultLineButtonDownFcn”@lineCallback)

默认值仍然为MATLAB会话指定。您可以在您的startup.m文件。