matlab匿名函数

匿名函数
匿名函数
什么是匿名函数?
匿名函数是不存储在程序文件中、但与数据类型是 function_handle 的变量相关的函数。匿名函数可以接受输入并返回输出,就像标准函数一样。但是,它们可能只包含一个可执行语句。

例如,创建用于计算平方数的匿名函数的句柄:

sqr = @(x) x.^2;
变量 sqr 是一个函数句柄。@ 运算符创建句柄,@ 运算符后面的圆括号 () 包括函数的输入参数。该匿名函数接受单个输入 x,并显式返回单个输出,即大小与包含平方值的 x 相同的数组。

通过将特定值 (5) 传递到函数句柄来计算该值的平方,与您将输入参数传递到标准函数一样。

a = sqr(5)
a =
25
许多 MATLAB® 函数接受将函数句柄用作输入,这样您可以在特定值范围内计算函数。您可以为匿名函数或程序文件中的函数创建句柄。使用匿名函数的好处是不必为仅需要简短定义的函数编辑和维护文件。

例如,通过将函数句柄传递到 integral 函数,计算 sqr 函数从 0 到 1 范围内的积分:

q = integral(sqr,0,1);
您无需在工作区中创建变量以存储匿名函数。可以在表达式内创建临时函数句柄,例如这次对 integral 函数的调用:

q = integral(@(x) x.^2,0,1);
表达式中的变量
函数句柄不仅可以存储表达式,还能存储表达式进行计算需要的变量。

例如,为需要系数 a、b 和 c 的匿名函数创建函数句柄。

a = 1.3;
b = .2;
c = 30;
parabola = @(x) ax.^2 + bx + c;
由于 a、b 和 c 在您创建 parabola 时可用,该函数句柄包含这些值。即使您清除变量,这些值仍持久保留在函数句柄内:

clear a b c
x = 1;
y = parabola(x)
y =
31.5000
要为这些系数提供不同值,您必须创建新的函数句柄:

a = -3.9

你可能感兴趣的:(matlab匿名函数)