MATLAB中具有可變數量輸入引數的函式


MATLAB 是一種高階程式語言,它能夠定義一個可以接受可變數量輸入引數的函式。在 MATLAB 中,無需定義任何附加函式或陣列即可定義具有可變數量輸入引數的函式。

如何在 MATLAB 中建立具有可變數量輸入引數的函式?

在 MATLAB 中,當在函式定義語句中使用關鍵字“varargin”時,它使函式能夠接受任意數量的輸入引數。“varargin”關鍵字由“VARiable ARGument INput”組成。需要注意的是,“varargin”關鍵字必須使用小寫字元指定。“varargin”必須宣告為函式定義中的最後一個輸入引數。

如果函式執行,“varargin”引數將建立一個 1×N 的元胞陣列。這裡 N 是函式在接受顯式宣告的輸入後所接受的輸入數量。如果函式在接受顯式宣告的輸入後沒有接受任何輸入,則“varargin”引數將是一個空元胞陣列。

語法

以下語法用於在 MATLAB 中建立具有可變數量輸入引數的函式。

function MyFun(var1, var2, var3, …, varargin)
--- Function Body ---
end

總的來說,在 MATLAB 中,當我們在函式中使用關鍵字“varargin”時,它使函式能夠靈活地接受任意數量的輸入引數。

這種可以接受任意數量輸入引數的函式通常用於需要輸入引數但在函式建立時無需定義它們的情況。

現在,讓我們瞭解如何在 MATLAB 函式中使用“varargin”選項來接受可變數量的輸入引數。

首先,我們定義一個函式,並在函式定義語句中將其輸入引數之一指定為“varargin”選項,如下所示

function MyFun(varargin)

之後,我們可以使用此“varargin”變數在函式體中接受任意數量的輸入引數,該變數基本上充當元胞陣列。此元胞陣列將包含執行時傳遞給函式的所有輸入引數。

此外,我們事先不知道將向函式提供多少個輸入引數。為了解決這個問題,我們可以使用“numel(varargin)”或“length(varargin)”之類的語法來確定可以提供給函式的輸入引數的數量。

這就是關於在 MATLAB 中建立具有可變數量輸入引數的函式的基礎知識。

示例

現在,讓我們考慮一個示例,以實際瞭解“varargin”選項的工作原理。

% MATLAB code to create a function with variable number of input arguments
function TutorialsPoint(varargin)
    n = numel(varargin);
    disp(['Number of Input Arguments: ' num2str(n)]);
    
    for i = 1:n
        disp(['Input Argument ' num2str(i) ': ' num2str(varargin{i})]);
    end
end

建立名為“TutorialsPoint”的函式後,該函式可以接受任意數量的輸入引數。現在,讓我們使用不同的輸入引數數量來呼叫此函式,如下所示。

% Calling the function with different number of input arguments
TutorialsPoint('Tutorials', 'Point', 'is', 'a', 'Free', 'Resource', 'for', 'Learners.');
TutorialsPoint('MATLAB', 'Course', 'ID', 2001);
TutorialsPoint(500);

輸出

Number of Input Arguments: 8
Input Argument 1: Tutorials
Input Argument 2: Point
Input Argument 3: is
Input Argument 4: a
Input Argument 5: Free
Input Argument 6: Resource
Input Argument 7: for
Input Argument 8: Learners.

Number of Input Arguments: 4
Input Argument 1: MATLAB
Input Argument 2: Course
Input Argument 3: ID
Input Argument 4: 2001

Number of Input Arguments: 1
Input Argument 1: 500

解釋

在這個 MATLAB 示例中,我們首先建立一個函式(本例中為 TutorialsPoint),並將其輸入引數設定為“varargin”選項。然後,我們定義函式體。最後,我們將此函式儲存在我們的 MATLAB 工作區中。

之後,我們使用任意數量的輸入引數在 MATLAB 命令視窗中呼叫該函式。該函式將接受輸入引數,並根據函式定義顯示結果。

示例

現在讓我們考慮另一個示例,以建立一個可以新增任意數量數字輸入引數的函式。

function MySum(varargin)
    n = numel(varargin);
    S = 0;

 for i = 1:n
        S = S + varargin{i};
    end
  
disp(['Sum of input Numbers: ' num2str(S)]);
end

現在,讓我們呼叫此函式來新增多個數字輸入引數。

% Calling the function with different number of input arguments
MySum(1, 2, 3);
MySum(5, 10, 20, 50, 100);

輸出

Sum of input Numbers: 6
Sum of input Numbers: 185

結論

這就是在 MATLAB 中建立具有可變數量輸入引數的函式的全部內容。在 MATLAB 中,我們有一個變數“varargin”,我們可以在函式中使用它來允許函式接受任意數量的輸入引數。

在本教程中,我們解釋了與“varargin”變數相關的全部基本概念。我們還包含了一些示例程式,以便更容易理解該概念。

更新於:2023年9月7日

167 次檢視

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.