子函數
在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版本中,內聯函數將會被刪除。