指令碼和函式
MATLAB 程式碼可以儲存在 m 檔案中以便重用。m 檔案具有 .m
副檔名,該副檔名自動與 MATLAB 相關聯。m 檔案可以包含指令碼或函式。
指令碼
指令碼只是程式檔案,它以預定義的順序執行一系列 MATLAB 命令。
指令碼不接受輸入,指令碼也不返回輸出。從功能上講,指令碼相當於直接在 MATLAB 命令視窗中輸入命令並能夠重放它們。
指令碼的一個例子:
length = 10;
width = 3;
area = length * width;
該指令碼將在當前工作空間中定義 length
,width
和 area
,其值分別為 10
,3
和 30
。
如前所述,上述指令碼在功能上等同於直接在命令視窗中鍵入相同的命令。
>> length = 10;
>> width = 3;
>> area = length * width;
功能
與指令碼相比,函式更加靈活和可擴充套件。與指令碼不同,函式可以接受輸入並將輸出返回給呼叫者。函式具有自己的工作空間,這意味著函式的內部操作不會更改呼叫者的變數。
所有函式都使用相同的標頭格式定義:
function [output] = myFunctionName(input)
function
關鍵字開始每個函式頭。產出清單如下。輸出列表也可以是要返回的逗號分隔的變數列表。
function [a, b, c] = myFunctionName(input)
接下來是將用於呼叫的函式的名稱。這通常與檔名相同。例如,我們將此函式儲存為 myFunctionName.m
。
函式名稱後面是輸入列表。與輸出一樣,這也可以是逗號分隔列表。
function [a, b, c] = myFunctionName(x, y, z)
我們可以將之前的示例指令碼重寫為可重用的函式,如下所示:
function [area] = calcRecArea(length, width)
area = length * width;
end
我們可以從其他函式呼叫函式,甚至可以從指令碼檔案呼叫函式。以下是我們在指令碼檔案中使用的上述函式的示例。
l = 100;
w = 20;
a = calcRecArea(l, w);
和以前一樣,我們在工作區中建立 l
,w
和 a
,分別為 100
,20
和 2000
。