这篇文章主要介绍“matlab匿名函数怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“matlab匿名函数怎么用”文章能帮助大家解决问题。
在Matlab7.0以后的版本中
出现了一种新的函数类型–匿名函数
不但能够完成原来版本中
内联函数(inline)的功能
还提供了其他更方便的功能
1,匿名函数的基本用法
handle = @(arglist)anonymous_function
其中handle为调用匿名函数时使用的名字
arglist为匿名函数的输入参数
可以是一个,也可以是多个,用逗号分隔
anonymous_function为匿名函数的表达式
举个例子如下:
>> f=@(x,y)x^2+y^2;
>> f(1,2)
ans =
5
当然输入的是数组也是可以的:
>> f=@(x,y)x.^2+y.^2; %注意需要点(.)运算
>> a=1:1:10;
>> b=10:-1:1;
>> f(a,b)
ans =
101
85
73
65
61
61
65
73
85
101
匿名函数的表达式中也可以有参数的传递,比如:
>> 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 =
1000
2000
3000
4000
5000
c作为表达式中的参数,进行了数据传递
上面都是单重匿名函数
也可以构造多重匿名函数,如:
>> f=@(x,y)@(a) x^2+y^+a;
>> f1=f(2,3)
f1 =
@(a)x^2+y^+a
>> f2=f1(4)
f2 =
85
每个@后的参数从它后面开始起作用
一直到表达式的最后。
使用匿名函数实现符号函数的赋值运算
在老版本的Matlab中
这个功能是由inline函数完成的
现在用匿名函数完成此功能
比如:知道z=2x^3+4x+5
求z在x=3处的2阶导数值
可以先用符号函数算出z的2阶导数的表达式
然后通过匿名函数,把x赋予3的值
得到最后结果:
>> syms x; %定义符号变量
>> z=2*x^3+4*x+5;
%定义表达式
>> z1=diff(z,2)
%求z的2阶导数的表达式 z1 = 12*x
>> z2=eval_r(['@(x)' vectorize(z1)]);
%vectorize函数的功能是
%使内联函数适合数组运算的法则
>> z2(3)
ans =
36
关于“matlab匿名函数怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。