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
總結
以上是生活随笔為你收集整理的matlab匿名函数求导,Matlab中的匿名函数的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: thinkphp3.1迁移php7,Th
- 下一篇: php 文件名汉字utf8,php ut