八度中的@符号是什么?
例如,在代码中:
[theta, cost] = fminunc(@(t)(costFunction(t, X, y)), initial_theta, options);
我对代码的作用有一般的了解,但我不了解@(t)
的作用。我浏览了八度文档,但是@
符号似乎很难搜索。
答案 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))