`@(x) myfun(x, F_index)` 在 Matlab 中是什么意思?

What does `@(x) myfun(x, F_index)` means in Matlab?

@(x) myfun(x, F_index)在MATLAB中是什么意思?它叫什么 return?

例如在这个应用程序中:

fmincon(@(x) myfun(x, F_index), ...)

请提供更多示例并在可能的情况下进行解释。

它是一个匿名函数,即不存储在程序文件中,而是与一个数据类型为function_handle的变量相关联的函数。匿名函数可以接受输入和 return 输出,就像标准函数一样。但是,它们只能包含一个可执行语句。 例如,创建一个匿名函数的句柄来求一个数的平方:

    function out=powerplus1(x,dat)
    out=x^2+dat;
     end

在你写的另一个文件中

dat=1;
sqr = @(x) powerplus1(x,dat);
a = sqrplusone(5)

那么a就是26.

变量sqrplusone是函数句柄。 @ 运算符创建句柄,@ 运算符后的括号 () 包含函数输入参数。此匿名函数接受单个输入 x,并隐式 returns 单个输出,一个与 x 大小相同的数组,其中包含平方加一的值。 通过将值传递给函数句柄来找到特定值 (5) 的平方加一个,就像将输入参数传递给标准函数一样。

a = sqrplusone(5)
a =
   26