匿名函数是使用以下语法定义的
@(argument-list) expression
在参数列表中找不到的任何变量都是从封闭作用域继承的。匿名函数可用于从表达式创建简单的未命名函数,也可用于软件包对其他函数的调用,以使其适用于以下函数quad
例如,
f = @(x) x.^2; quad (f, 0, 10) ⇒ 333.33
从表达式创建一个简单的未命名函数x.^2
并将其传递给quad
,
quad (@(x) sin (x), 0, pi) ⇒ 2
软件包另一个函数,以及
a = 1; b = 2; quad (@(x) betainc (x, a, b), 0, 0.4) ⇒ 0.13867
将具有多个参数的函数调整为quad
所需的形式。在本例中,a和b的值传递给从当前环境中继承的betainc
。
请注意,出于性能原因,最好使用现有Octave函数的句柄,而不是定义软件包现有函数的匿名函数。sin(x)
的集成代码在这里被写成
quad (@sin, 0, pi)
而不使用匿名函数@(x) sin(x)
.有许多函数具有等价运算符,它们可能是比匿名函数更好的选择。而不是写作
f = @(x, y) x + y
这应该写作
f = @plus
详见运算符重载,用于也具有函数形式的运算符列表。
版权所有 © 2024 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号