指令碼和函式

MATLAB 程式碼可以儲存在 m 檔案中以便重用。m 檔案具有 .m 副檔名,該副檔名自動與 MATLAB 相關聯。m 檔案可以包含指令碼或函式。

指令碼

指令碼只是程式檔案,它以預定義的順序執行一系列 MATLAB 命令。

指令碼不接受輸入,指令碼也不返回輸出。從功能上講,指令碼相當於直接在 MATLAB 命令視窗中輸入命令並能夠重放它們。

指令碼的一個例子:

length = 10;
width = 3;
area = length * width;

該指令碼將在當前工作空間中定義 lengthwidtharea,其值分別為 10330

如前所述,上述指令碼在功能上等同於直接在命令視窗中鍵入相同的命令。

>> 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);

和以前一樣,我們在工作區中建立 lwa,分別為 100202000