匿名函式

匿名函式

匿名函式它是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

每個@後的參數從它後面開始起作用,一直到表達式的最後。

相關詞條

相關搜尋

熱門詞條

聯絡我們