MATLAB - 函式優先順序順序



函式優先順序順序,簡單來說,就是 MATLAB 遵循的一套規則,用於決定在有多個同名函式或變數時使用哪個。就像一個等級制度,MATLAB 用它來確定選擇哪一個。

MATLAB 遵循以下優先順序順序:

變數

如果一個名稱在當前工作區中被識別為變數,MATLAB 將將其用作變數。

示例

x = 5;
y = x + 2;

在這個示例中,x 是一個變數,MATLAB 識別它。

具有顯式匯入的函式或類

如果函式或類名稱與顯式匯入的名稱匹配,則它具有優先順序。

示例

import MyPackage.myFunction;
result = myFunction();

這裡,來自 MyPackage 的 myFunction 被顯式匯入並使用。

巢狀函式

當前函式內的函式優先。

示例

function outer()
   x = 10;
   function inner()
      x = 5;
   end
end

在這種情況下,inner 中的 x 優先於 outer 中的 x。

區域性函式

當前檔案內的函式具有優先順序。

考慮以下指令碼 myScript.m

示例

function result = myScript()
   x = 3;
   y = localFunction();
end

function z = localFunction()
   z = 7;
end

在這個示例中,使用同一檔案中的 localFunction。

使用萬用字元匯入的函式或類

如果一個函式與基於萬用字元的匯入匹配,則它具有優先順序,除了巢狀函式和區域性函式。

示例

import MyPackage.*;  % Imports all functions in MyPackage
result = myFunction();

這裡,如果 myFunction 透過萬用字元匯入,則它具有優先順序。

私有函式

名為“private”的子資料夾中的私有函式具有優先順序。

在 MATLAB 中,私有函式是指專門設計用於單個 MATLAB 指令碼或函式內部使用的函式,它們通常儲存在與使用它們的指令碼相同的資料夾中的名為“private”的子資料夾中。

% In the folder containing your script
/private/myPrivateFunction.m

當您在與這個“private”子資料夾相同的資料夾中有一個指令碼時,位於“private”子資料夾中的任何函式都優先於位於其他地方的同名函式。

在上面的示例中,如果您在包含 myPrivateFunction.m 的“private”子資料夾的同一資料夾中有一個指令碼,則 MATLAB 將優先使用該指令碼中的 myPrivateFunction,這使得它成為組織和管理指令碼特定函式的一種便捷方式。

物件函式

物件函式由輸入引數的類決定。

object = MyClass();
result = object.myMethod();

在 MyClass 物件上呼叫的 myMethod 呼叫該特定物件函式。

MATLAB 根據輸入引數的類確定使用哪個物件函式。當您在物件上呼叫函式時,例如 object.myMethod(),MATLAB 將自動呼叫與該物件類關聯的方法。

這確保了物件的特定行為被執行,允許您與物件互動並根據其類和特徵修改它們。

在上面的示例中,result = object.myMethod();,myMethod 是一個在 MyClass 類物件上操作的函式,當建立該類的物件時,MATLAB 會相應地使用它。

類建構函式

建立物件時,類資料夾中的建構函式優先。

myObj = MyClass();

這裡,使用來自 @MyClass 資料夾的 MyClass 建構函式。

在 MATLAB 中的面向物件程式設計中,類建構函式是一個特殊的函式,用於建立類的例項,這些例項稱為物件。當您使用類建構函式建立物件時,MATLAB 將優先考慮位於類資料夾中的建構函式,而不是其他同名函式。

這確保了該類的物件被正確初始化,並且可以在建立期間進行自定義。在您的示例中,myObj = MyClass();,MATLAB 特別使用位於 @MyClass 資料夾中的建構函式函式來初始化 myObj 物件,使其可以使用定義的類屬性和方法。

載入的 Simulink 模型

如果 Simulink 模型已載入,則它們具有優先順序。

在 Simulink 的上下文中,如果您在 MATLAB 會話中打開了多個 Simulink 模型或載入了多個 Simulink 模型,那麼當您執行與 Simulink 相關的任務時,這些模型將優先於其他函式或變數。這確保了您的 Simulink 環境透過使用當前載入的模型中的元件和設定無縫執行,從而允許有效地進行建模和模擬,而不會受到無關函式或變數的干擾。它有助於維護 Simulink 工作的完整性和一致性。

當前資料夾中的函式

與您的指令碼相同的資料夾中的函式優先。

這意味著,如果您在與您的指令碼或 MATLAB 檔案相同的資料夾中儲存了函式,則這些區域性函式優先。MATLAB 將選擇當前資料夾中的函式,而不是 MATLAB 路徑上其他位置的同名函式。這有助於確保您的程式碼使用適合您專案需求的特定區域性函式。

路徑上其他位置的函式

MATLAB 路徑上的函式按其出現的順序進行評估。

當 MATLAB 無法在當前資料夾中或透過其他特定優先順序規則找到函式時,它會檢視放置在其搜尋路徑上的函式。MATLAB 路徑上的函式將被考慮,並且它們將按其在路徑上的出現順序進行評估。這提供了一種訪問和使用不在當前資料夾中的函式的方法,從而方便地在各種專案中處理庫和常用函式。

廣告