MATLAB的函数句柄

句柄(handle)是 MATLAB 的标准数据类型之一。利用函数句柄可以实现对函数的间接调用,可以通过将函数句柄传递给其他函数实现对函数的操作,也可以将函数句柄保存在变量中。

函数句柄通过@符号创建,语法为:

fhandle = @functionname

其中,functionname 为函数名,fhandle 就是为该函数创建的句柄。

函数句柄也可以通过创建匿名函数的方式创建,语法为:

fhandle = @(arglist)expr

其中,expr 为函数体,arglist 为逗号分隔开的输入变量列表。比如,expr = @(x) x.^2 创建了用于计算输入变量平方的匿名函数。

如果输入变量为空,则 arglist 为空。t = @()datestr(now) 匿名函数的输入变量为空。

可以通过函数句柄实现对函数的间接调用,其调用语法为:

fhandle(arg1, arg2, …, argN)    %其中fhandle为函数句柄

可以使用单元数组同时为多个函数创建各自的句柄,例如,trigFun = {@sin, @cos, @tan},定义了单元数组 trigFun,它包含 3 个函数的句柄。

执行 plot(trigFun{2}(-pi:0.01:pi)) ,就是利用句柄调用了第二个函数,即 cos 函数。