Matlab裏的子函數、內聯函數、匿名函數

子函數

在Matlab中,可以把多個函數的定義放在一個函數文件中,這些函數中,第一個出現的爲主函數,其他的函數均爲子函數,需要注意的是,子函數只能被同一個函數文件中的函數調用。在保存函數文件的時候,函數文件名一般保持和主函數名相同,且外部程序只能對主函數進行調用。下面距離說明。

function d=add2(a,b,c)
	% d=a*b+c
	d=mult2(a,b)+c;
end

function c=mult2(a,b)
c=a*b;
end

運行結果如下

>> add2(3,4,5)
ans =
    17

內聯函數

使用字符串形式存在的函數表達式可以通過inline函數轉化爲內聯函數,例如

a='(x+y)^2'

可以通過

f=inline(a)

轉換爲f(x,y)=(x+y)^2
執行如下

>> a='(x+y)^2';
>> f=inline(a)
f =
     內聯函數:
     f(x,y) = (x+y)^2
>> f(3,4)
ans =
    49

匿名函數

匿名函數的格式:函數句柄變量=@(匿名函數輸入參數) 匿名函數表達式,其中,函數句柄變量相當於函數的別名,利用它可以間接調用函數,@是創建函數句柄的運算符,@後面定義了一個匿名函數,包括函數輸入參數和函數表達式。舉例如下:

>> sqr=@(x) x.^2
sqr =
  包含以下值的 function_handle:
    @(x)x.^2
>> sqr([1,2,3])
ans =
     1     4     9

匿名函數的執行效率要比內聯函數高,所以建議使用匿名函數,並且在後續的matlab版本中,內聯函數將會被刪除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章