使用變量varargin和變量varargout。varargin和varargout必須使用小寫形式。例如,
function?[m,n]?=?testhv3(varargin)將輸入的變量數讀取到函數testhv3中,而
function?[varargout]?=?testhv4(m,?n,?p)則通過函數testhv4返回輸出的變量數。若函數testhv有壹個固定的輸入變量x,後跟輸入變量的可變數目,則調用
function?[m,?n]?=?testhv3(x,?varargin)函數時,會導致varargin由用戶提供的第二個輸入變量開始運行(第二個輸入變量為varargin這個單元數組第壹個元素)。varargout的情形與此類似。壹個函數的輸入變量和輸出變量的個數是可變的。
當varargin用做壹個函數的輸入變量時,MATLAB會將其置入壹個單元數組中,該數組接受由用戶輸入的變量數。varargout類似,函數返回的是壹個單元數組。
例:
function?varargout?=?Test(a,?b,?varargin)if?(nargin?==?2)
fprintf('***有%d個輸入參數.\n',nargin);
varargout{1}?=?a;
varargout{2}?=?b;
elseif?(nargin?==?3)
fprintf('***有%d個輸入參數.\n',nargin);
varargout{1}?=?a;?
varargout{2}?=?b;?
varargout{3}?=?varargin{1};
end
end
當妳在matlab命令行鍵入
[x,y,z]?=?Test(1,?2,?3)返回
***有3個輸入參數.x?=?1
y?=?2
z?=?3
參考文獻
[1]Rafael C.Gonzalez,Richard E.Woods,Steven L.Eddins.數字圖像處理(MATLAB版)[M].電子工業出版社:北京,2005.9:51.
[2]森林裏的樹葉子.Matlab,如何實現輸入參數及輸出參數的個數可變?[EB/OL]./s/blog_e68017690102v68u.html,2014-11-08.