MATLAB如何定義函數



自定義函數的途徑:

M文件函數(M file function)

在線函數(Inline Function)

匿名函數(Anonymous Function)

1.M文件函數

范例

function c=myadd(a,b)

%這里可以寫函數的使用說明,前面以%開頭

%在工作區中,help myadd將顯示此處的說明

c=a+b;

%end %非必須的

第一行function告訴Matlab這是一個函數,a,b是輸入,c是輸出,myadd是函數名。以m文件定義的函數必須保存為函數名的形式,上例中,函數應保存為myadd.m。要使用myadd函數,該函數必須在Matlab的搜索路徑中。

調用方式:

在Matlab命令符后輸入

a=1;b=2;

c=myadd(a,b)

關于m文件定義函數還有許多的說明,暫時略去。。。

2.在線函數(Inline Function)

通常作為參數傳遞給另外一個函數。比如fminsearch,lsqcurvefit等函數需要以函數作為參數。

在線函數從字符串表達式創建函數,例如:

f=inline('x.^2','x');

創建了函數f(x)=x^2。要計算f(3),在工作區輸入f(3)即可。f([2 3 4])計算在x=2 3 4時的值

f=inline('x+y','x','y')

創建了二元函數f(x,y)=x+y,工作區輸入f(2,3)計算2+3,等同于feval_r(f,2,3)。

3.匿名函數(Anonymous Function)

匿名函數使用函數句柄來表示匿名函數,定義形式為

函數句柄=@(變量名) 函數表達式

例如:

f=@(x) x.^2

定義了函數f(x)=x^2,f(2)計算在x=2處的值。

匿名函數可以調用Matlab函數,也可以使用工作區中存在的變量,例如

a=2;

f=@(x) x.^2+a

f(2) %計算時引用了變量a

a=0;

f(2) %仍然引用的是a=2

匿名函數也可以由Matlab的內置函數或M文件函數創建,例如

f=@sin %f(x)=sin(x)

f(pi/2) %sin(pi/2)

functions(f) %查看函數信息

利用單元數組可以創建多個函數的句柄,例如

f={@sin @cos}

f{1}(pi/2) %計算sin(pi/2)

f{2}(pi) %計算cos(pi)

函數句柄的另一個重要特征是可以用來表示子函數、私有函數和嵌套函數。

Matlab 7以后,建議以匿名函數取代在線函數?。。?/h4>

在創建匿名函數時,Matlab記錄了關于函數的信息,當使用句柄調用該函數的時候,Matlab不再進行搜索,而是立即執行該函數,極大提高了效率。

此論文轉載。

https://www.cnblogs.com/sddai/p/5451545.html

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容