0

我必须以八度音阶编写一个函数,形式为 f(fun,x,m),其中 fun 是另一个函数,但我对此有疑问,我该怎么做?(将函数作为变量)

4

1 回答 1

4

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

根据这里给出的文章,

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

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

下面的示例为内置humps函数创建一个函数句柄并将其分配给变量fhandle

fhandle = @humps;

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

x = fminbnd(fhandle, 0.3, 1)
x =
    0.6370
于 2013-04-14T07:51:41.123 回答