0%

Matlab 可变输入输出

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)])

输出结果:

1
2
res1=30
res2=60