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

“@(x)myfun(x,F_index)”在Matlab中是什么意思?,matlab,function,handle,Matlab,Function,Handle,@(x)myfun(x,F_索引)在MATLAB中是什么意思?它叫什么并返回 例如,在此应用程序中: fmincon(@(x) myfun(x, F_index), ...) 如果可能,请提供更多示例并加以解释。这是一个匿名函数,它不是存储在程序文件中的函数,而是与数据类型为function\u handle的变量关联的函数。匿名函数可以像标准函数一样接受输入并返回输出。但是,它们只能包含一条可执行语句。 例如,为查找数字平方的匿名函数创建句柄: function out=powerp

@(x)myfun(x,F_索引)
在MATLAB中是什么意思?它叫什么并返回

例如,在此应用程序中:

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

如果可能,请提供更多示例并加以解释。

这是一个匿名函数,它不是存储在程序文件中的函数,而是与数据类型为function\u handle的变量关联的函数。匿名函数可以像标准函数一样接受输入并返回输出。但是,它们只能包含一条可执行语句。 例如,为查找数字平方的匿名函数创建句柄:

    function out=powerplus1(x,dat)
    out=x^2+dat;
     end
在您编写的另一个文件中

dat=1;
sqr = @(x) powerplus1(x,dat);
a = sqrplusone(5)
然后
a
将为26

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

a = sqrplusone(5)
a =
   26

这是一个。该构造(
@(x).
)称为。它创建了一个本质上是函数的变量。此处的用法表示匿名函数正用于
myfun
。请参阅文档了解更多详细信息。为什么不发表评论以澄清?可能重复–这也是另一个问题@knedlseppI试图给您提供一个带有2个参数的示例,但我遇到了一些错误。如果其他人能,帮助他。我想他想要这样的东西:
function out=mypower2(x,dat)
out=x^2+dat
end
sqr=@(x)mypower2(x,dat)
sqr(5)=?是的,我确实需要知道@Electricman@Electricman创建匿名函数时,如果变量不在
@(…)
列表中(如本例中的
dat
),它们需要已经定义,因为匿名函数将存储它们的值以供以后执行。有关示例,请参见。我已编辑了“我的答案”@Jamaisavenirtanks@TroyHaskin答案经过编辑,希望正确。