matlab匿名函数求导,Matlab中的匿名函数的使用

转载自:http://blog.sina.com.cn/s/blog_71fb42f70100uyfx.html#commonComment

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 =    26.1000   20.2000   18.3000   20.4000   26.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

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

2.使用匿名函数实现符号函数的赋值运算 在老版本的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(['@(x)' vectorize(z1)]); %vectorize函数的功能是使内联函数适合数组运算的法则  >> z2(3)  ans = 36

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值