vararout 与 varargin 实现可变输入输出
猜测: var 是 “variable” 的缩写,表示可变的; arg 是 “argument” 的缩写,表示自变量; out/in 表示输入参数还是输出参数。
varargin 是函数定义语句中的输入变量,放在输入项的最后位置;在函数内是个 1*N 的cell数组,N 是在此位置之后的输入项数, N也可以为0。
varargout 用在输出位置,情况与 varargin 相同。
说明: nargin 表所有的输入变量数。
下面给出一个例子使用:
定义函数:
1 2 3 4 5 6 7 8 9 10 11 12
| % function definition function varargout = calculator(type, varargin) varInput = cell2mat(varargin(:)); % cell to double if strcmp(type, 'addition') if nargin == 3 varargout{1} = varInput(1) + varInput(2); elseif nargin == 4 varargout{1} = varInput(1) + varInput(2); varargout{2} = varInput(1) + varInput(2) + varInput(3); end end end
|
运行主函数:
1 2 3 4
| % run in command [res1, res2] = calculator('addition', 10, 20, 30); disp(['res1=', num2str(res1)]) disp(['res2=', num2str(res2)])
|
输出结果: