MATLAB—M函數文件

一.M文件

首先,要了解腳本文件和函數文件的區別,在MATLAB中編寫的程序文件稱爲M文件,M文件分爲腳本文件和函數文件倆種。

1.腳本文件和函數文件的區別

腳本文件:沒有輸入參數和輸出參數,運行腳本文件實際上就是順序執行腳本文件中的控制流,腳本文件適合小規模的運算。腳本文件中的變量都是全局變量。

函數文件:有輸入參數和輸出參數,由function引導,用戶可以自己創建函數、調用函數,就像MATLAB內嵌函數一樣使用,函數中的變量一般是局部變量,也可以聲明全局變量。函數是MATLAB的主流編程方式。

腳本文件和函數文件的區別如圖:
在這裏插入圖片描述

二.M函數文件

1.創建方法

腳本文件的創建方法就是,新建一個腳本,在裏面編寫程序就可以了。
函數文件的創建也是類似的,首先創建一個函數文件,文件名要和函數名一致,然後在文件中編寫函數,以function爲引導,函數文件中必須包括一個主函數,也可以包含子函數、內嵌函數等等…這和C語言的函數有類似之處。

2.文件形式

函數文件以function爲引導,表明這個文件是一個函數文件,格式如下:

function  [ 輸出形參 ] = 函數名[ 輸入形參 ]
%註釋
內容

例如:
在這裏插入圖片描述
特別注意一點,函數文件名要和主函數的名字一致。

2.函數形參及註釋

函數形參
函數文件有輸入形參和輸出形參,在聲明函數的時候就確定了形參的個數,輸入形參以圓括號()表示,輸出形參以方括號[]表示(注:輸出形參爲一個的時候可以不用[])。而且每個形參的位置都是對應的,當沒有輸入參數或者輸出參數時,就不用寫了,相當於C語言中的void。
另外調用函數的時候,有時需要傳入參數和傳出參數,參數的位置必須和形參的位置相對應,這點和C語言中的形參使用幾乎一樣。

註釋
當我們調用MATLAB內部函數時,使用help等可以查詢函數的使用規則和函數功能,用戶編寫的函數在註釋後也可以通過help進行查詢,這樣就可以構成函數的在線幫助文本了。
具體的註釋規則如圖:
在這裏插入圖片描述

3.函數的調用

寫好函數後總要使用的嘛,函數文件自己不可以直接運行,需要用戶調用纔可以,用戶調用的時候格式如下:

[ 輸出實參 ] = 函數名( 輸入實參 )

注意這裏的參數就不同於上面聲明函數時的參數,聲明函數是形參,調用函數是實參,實參必須要有確定的值。
還有,實參的個數和位置要和形參對應
例如:
在這裏插入圖片描述

4.函數變量

函數運行的時候會產生一些變量,我們知道,在命令行和腳本文件下產生的變量都是放在主變量工作區的,也就是全局變量。
但是函數內部產生的是局部變量,除非特殊說明爲全局變量,局部變量會在函數調用完畢後隨函數的結束而清除,當然,也可以通過函數返回值來使變量傳出函數,從而保存下來(或者聲明爲全局變量)。

聲明一個變量爲全局變量時格式爲:

global 變量1 變量2

注意:變量之間必須使用空格來隔開,不能用逗號!

5.主函數、子函數

一般函數文件中第一個函數就是主函數,主函數的函數名也和函數文件名一致。 調用一個函數首先執行的就是主函數了,這一點和C語言中的main函數有相似之處。

對應主函數,在一個函數文件中也會有子函數,子函數可以被主函數調用、被子函數調用。子函數也由function來引導,子函數的調用和位置無關!
例如:
在這裏插入圖片描述

三.函數句柄

當用戶編寫了一個函數的時候,要調用此函數時,需要嚴格按照規定給出函數調用的格式,還要寫正確函數名,但是有時候函數名字比較麻煩。而且,最重要的一點:MATLAB每次調用函數的時候都要從所有路徑中去尋找對應函數,這就導致程序運行較慢!!!

使用函數句柄可以解決這種問題,什麼是函數句柄呢?我們可以類比PC中程序的快捷方式來理解,要啓動一個程序,計算機就要從硬盤中找啓動程序(感覺有點像大海撈針)只不過計算機運行速度飛快,可以比較快找到,而快捷方式就相當於指定了程序的啓動地址,使計算機可以直接去啓動程序。
函數句柄也是,使用函數句柄調用函數的時候,速度就比直接調用函數快了,而且使用函數句柄還可以給函數句柄重新命名,對函數句柄的操作就相當於對函數的操作!

定義函數句柄的常用方式就是:

Handle = @FunctionName

直接句柄名=@函數名 就可以,例如:
在這裏插入圖片描述

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