我必须以八度音阶编写一个函数,形式为 f(fun,x,m),其中 fun 是另一个函数,但我对此有疑问,我该怎么做?(将函数作为变量)
问问题
85 次
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 回答