当前位置首页 > 百科资料> 正文

匿名函数

2022-07-14 02:22:28 百科资料

匿名函数它是matlab中定义的一种函数形式,出现在matlab中,匿名函数不以文件形式驻留在文件夹上;他的生成方式最简捷,可在指令窗或任何函数体内通过指令直接生成。

匿名函数的作用主要是实现自己定义matlab中的函数,从而扩大函数的使用功能

  • 中文名 匿名函数
  • 出现  matlab 
  • 定义 matlab中定义的一种函数形式

  寿命

  和内联函数(inline)相比,匿名函数的优越性在于可以直接使用workspace中的变量,不必申明,非常适合嵌入到M文件中。

  %例10-25 匿名函数举例。

  %本例列举3个匿名函数的例子,分别有0个、1个和两个输入参数。

  %首先介绍没有输入参数的匿名函数,只需用空格代替arglist即可。例如,编写求解当前时间的匿名函数如下所示。

  >> t = @() datestr(now);

  t() %函数的调用

  ans =

  14-Sep-2004 20:22:50

  %值得注意的是,调用该函数时,括号不能省略,否则, MATLAB 7.1将对程序不予计算,如下所示。

  >> t

  t =

  @() datestr(now)

  >>

  %再介绍有一个输入参数的匿名函数,该函数用于求所输入参数的平方,编制并运行程序如下所示。

  >> sqr = @(x) x.^2

  sqr =

  @(x) x.^2

  >> sqr(12)

  ans =

  144

  >>

  %最后介绍有两个输入参数的匿名函数,用户可以由此推导有多个参数的匿名函数,编制并运行程序如下所示。

  >> sumAxBy = @(x, y) (14*x + 41*y)

  sumAxBy =

  @(x, y) (14*x + 41*y)

  >> sumAxBy(3,7)

  ans =

  329

  >>

  注意这些定义过程,其中@这个标志符是很重要的。

  匿名函数的表达式中也可以有参数的传递,比如:

  >> a=1:5; b=5:-1:1; c=0.1:0.1:0.5;

  >> f=@(x,y)x.^2+y.^2+c;

  >> f(a,b)

  ans = 26.100020.200018.300020.400026.5000

  c作为表达式中的参数,进行了数据传递。

  上面都是单重匿名函数,也可以构造多重匿名函数,如:

  >> f=@(x,y)@(a) x^2+y^+a;

  >> f1=f(2,3)

  f1 = @(a)x^2+y^+a %注意这里f1 是关于a的函数了,与f不同。

  >> f2=f1(4)

  f2 = 85

  每个@后的参数从它后面开始起作用,一直到表达式的最后。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net