八度中的@符号是什么?

时间:2018-09-27 23:14:16

标签: octave

八度中的@符号是什么?

例如,在代码中:

[theta, cost] = fminunc(@(t)(costFunction(t, X, y)), initial_theta, options);

我对代码的作用有一般的了解,但我不了解@(t)的作用。我浏览了八度文档,但是@符号似乎很难搜索。

2 个答案:

答案 0 :(得分:2)

从控制台:

octave:1> help @

 -- @
     Return handle to a function.

     Example:

          f = @plus;
          f (2, 2)
          =>  4

     (Note: @ also finds use in creating classes.  See manual chapter
     titled Object Oriented Programming for detailed description.)

     See also: function, functions, func2str, str2func.

手册中的更多信息:https://octave.org/doc/interpreter/Function-Handles.html


在您的特定代码中,使用'@'语法来创建功能的“现场”实现(以匿名函数的形式),该实现采用单个参数,而不是costFunction所要求的三个。这是因为fminunc期望一个函数使用一个参数作为参数,因此一个函数可以有效地将更复杂的函数“包装”为与fminunc兼容的简单函数。

答案 1 :(得分:1)

@在匿名函数的定义中位于哑变量之前,例如:

f = @(x) x.^2;
y=[1:3];
f(y)

返回

1 4 9

快速浏览帮助fminunc显示示例中的FCN为@(t)(costFunction(t,X,y))