MATLAB 函式可選引數
Ammar Ali
2021年4月29日
在本教程中,我們將討論如何通過使用 MATLAB 中的 nargin
和 varargin
屬性來設定函式的可選引數。
使用 MATLAB 中的 varargin
和 nargin
屬性設定函式的可選引數
你可以使用函式名稱方括號內的 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
屬性的更多資訊。
作者: Ammar Ali