与其他函数作为变量的函数

时间:2013-04-14 07:38:57

标签: matlab octave

我必须用八度音程编写一个函数,形式为f(fun,x,m),其中fun是另一个函数 但我有一个问题,我该怎么办呢? (把函数作为变量)

1 个答案:

答案 0 :(得分:4)

您可以使用“功能句柄”。

根据给出here的文章,

  

handle = @functionname%返回指定MATLAB®函数的句柄。

函数句柄是一个MATLAB值,它提供了一种间接调用函数的方法。您可以在调用其他函数(通常称为函数函数)时传递函数句柄。您还可以将函数句柄存储在数据结构中以供以后使用(例如,作为Handle Graphics回调)。函数句柄是标准MATLAB数据类型之一。

以下示例为内置humps函数创建函数句柄,并将其分配给变量fhandle

fhandle = @humps;

现在,您可以像传递任何参数一样将句柄传递给另一个函数。此示例将刚刚创建的函数句柄传递给fminbnd,然后在[0.3, 1]区间内最小化。

x = fminbnd(fhandle, 0.3, 1)
x =
    0.6370