MATLAB 函式可選引數

Ammar Ali 2021年4月29日
MATLAB 函式可選引數

在本教程中,我們將討論如何通過使用 MATLAB 中的 narginvarargin 屬性來設定函式的可選引數。

使用 MATLAB 中的 vararginnargin 屬性設定函式的可選引數

你可以使用函式名稱方括號內的 varargin 屬性為函式提供任意數量的輸入,還可以使用 nargin 屬性檢查傳遞給該函式的輸入數量。例如,讓我們建立一個函式,該函式使用 varargin 屬性接受任何數量的輸入,然後使用 nargin 屬性來獲取輸入的數量。請參見下面的程式碼。

Number_of_inputs = sample(2,1,1)
function output = sample(varargin)
    output = nargin;
end

輸出:

Number_of_inputs =

     3

如你所見,我們在函式中傳遞了三個輸入,該輸入返回輸入的總數。varargin 包含一個輸入陣列,你可以根據需要使用它們。例如,讓我們獲取輸入的數量,然後使用 for 迴圈列印這些輸入。請參見下面的程式碼。

Number_of_inputs = sample(2,'Hello',[1,2,3]);
function output = sample(varargin)
    output = nargin;
    for i=1:nargin
        disp(varargin{i})
    end
end

輸出:

     2

Hello
     1     2     3

如你在輸出中看到的,輸入已顯示。因此,你可以使用索引來獲取儲存在 varargin 單元格陣列中的特定輸入,然後根據需要使用它們。所有這些輸入都是可選的,但是如果你想新增一些必填的輸入,則可以將它們新增到 varargin 之前。請注意,你必須在函式呼叫期間新增強制性輸入。否則,該函式將給出錯誤。例如,讓我們新增兩個必需引數,然後新增它們以獲取輸出,然後將顯示可選引數。請參見下面的程式碼。

sum = sample(2,3,[1,2,3],'Hello')
function output = sample(x,y,varargin)
    output = x+y;
    for i=1:nargin-2
        disp(varargin{i})
    end
end

輸出:

     1     2     3

Hello

sum =

     5

如你在輸出中所見,已新增前兩個輸入以獲取總和,並顯示可選引數。注意,我們已經從 nargin 中減去了兩個,因為 nargin 給出了輸入的總數,而不是 varargin 單元格陣列中存在的輸入。檢視此連結以獲取有關 varargin 屬性的更多資訊。

Author: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相關文章 - MATLAB Function