複製鏈接
請複製以下鏈接發送給好友

匿名函數

鎖定
匿名函數它是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
每個@後的參數從它後面開始起作用,一直到表達式的最後。