匿名函数

匿名函数

  •   f=@(arglist)anonymous_function, 如:f=@(x,y)x+y, 则 f(1,2)=3。注意匿名函数后面的函数表达式不需要引号。
  •   对于数组,注意匿名函数中(.)运算符的应用, 如: f=@(x,y) x.^2+y.^2
  •   匿名函数可以使用前面定义过的变量
c=1;
f=@(x,y)x.^2+y.^2+c;
f([1 2],[3 4])
ans=
11    21

但是需要注意的是,定义过的变量如果发生变化,匿名函数是不会改变所使用的变量的,例如上面例子中如果改变c,c=3。此时再执行匿名函数f([1 2],[3 4]),结果不会改变,仍然是 11 21

  •   使用匿名函数给符号表达式赋值
>> syms x z
>> syms x y z
>> z=x^2+y^2
z =
x^2 + y^2
>> f=eval(['@(x,y)',vectorize(z)])
f =
  包含以下值的 function_handle:
    @(x,y)x.^2+y.^2
>> f(1,3)
ans =
    10
  • 匿名函数可以灵活构造矩阵并进行运算,例如
>> f=@(x,y)[x,x;y,y]*[1,2;3,4];
f(1,2)
ans =
     4     6
     8    12

 

posted on 2018-11-01 18:06  BabyStep  阅读(311)  评论(0编辑  收藏  举报

导航