Matlab提供了两个获取函数参数数目的函数:nargout与nargin。 或者,直接用nargout与nargin来表示输出与输入的参数数目。在函数内部使用时,nargin 和 nargout分别表明有输入和输出参数数量。若在函数外部使用, nargin 和nargout对给定的函数,表明输入和输出参数数量。如果一个函数有可变数量的参数,参数数量为负值。
nargin:返回函数输入参数的数量。
nargin(fun):返回函数 fun输入参数数量。如果函数参数数量可变,nargin 返回一个负值。fun 可以是函数名或映射函数的函数句柄。
nargout:返回函数输出参数的数量。
nargout(fun):返回函数fun的输出参数数量,fun可以使函数名或映射函数的函数句柄。
参考代码:
function [x0, y0] = myplot(x, y, npts, angle, subdiv) % MYPLOT Plot a function. % MYPLOT(x, y, npts, angle, subdiv) % The first two input arguments are % required; the other three have default values. ... if nargin < 5, subdiv = 20; end if nargin < 4, angle = 10; end if nargin < 3, npts = 25; end ... if nargout == 0 plot(x, y) else x0 = x; y0 = y; end================================================================
1、varargout与nargout区别
varargout简介:
varargout可以看做“Variable length output argument list”的缩写。在matlab中定义m函数时通过varargout我们可以得到可变的数个返回值。在matlab命令窗口中输入doc varargout或help varargout可以获得相关帮助信息。函数申明时的输出参数。
用法:function varargout = foo(n)。
nargout简介:
在matlab中定义一个函数时, 在函数体内部, nargout指出了输出参数的个数。特别是在利用了可变参数列表的函数中, 用nargout获取输出参数个数很方便。
用法:
n = nargout
n= nargout(fun)
2、varargin与nargin的区别
varargin简介:
varargin可以看做“Variable length input argument list”的缩写。在matlab中, varargin提供了一种函数可变参数列表机制。 就是说,使用了“可变参数列表机制”的函数允许调用者调用该函数时根据需要来改变输入参数的个数。
用法:function y = bar(varargin)。
nargin简介:
在matlab中定义一个函数时, 在函数体内部, nargin指出了输入参数的个数。 特便是在利用了可变参数列表的函数中, 用nargin获取输入参数个数很方便。
用法:
n = nargin
n = nargin(fun)
3、实例
function varargout = foo(varargin)
fprintf('How many output arguments? %d\nAnd they are: \n', nargout);
for k=1:nargout
varargout(k) = varargin(k); % the same as {varargin{k}};
fprintf('%s ', num2str(varargout{k}));
end
disp(' ');
end
在matlab command中运行结果如下:
>>[y1,y2]=lianxi(1,2,3)
How many output arguments? 2
And they are:
1 2
y1 =
1
y2 =
2
>> y=lianxi(1,2,3)
How many output arguments? 1
And they are:
1
y =
1