匿名函数使用以下语法定义:
@(参数列表) 表达式
未在参数列表中出现的任何变量将从外部作用域继承。匿名函数可用于从表达式创建简单的未命名函数,也可用于包装对其他函数的调用,以使其适配像 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 所需的形式。在此示例中,传递给 betainc 的 a 和 b 的值是从当前环境继承的。
请注意,出于性能原因,最好使用现有 Octave 函数的句柄,而不是定义包装现有函数的匿名函数。如果代码写成:
quad (@sin, 0, pi)
则 sin (x) 的积分速度比使用匿名函数 @(x) sin (x) 快 5 倍。许多运算符都有与之对应的函数形式,这些函数形式可能比匿名函数更合适。与其写作:
f = @(x, y) x + y
不如编码为:
f = @plus
请参阅 运算符重载,以获取具有函数形式的运算符列表。
版权所有 © 2024-2026 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2