nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能。通常可以用它来设定一些默认值。如下例所示:
函数文件 examp.m
function fout=examp(a,b,c)
if nargin==1
fout=a;
elseif nargin==2
fout=a+b;
elseif nargin==3
fout=(a*b*c)/2;
end
另外一例:
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
注:%x,y是两个变量,npt,angle,subdiv这三个参数具有默认值,不需要输入。
if nargin < 5, subdiv = 20; end如果输入变量的个数小于5个,那么给subdiv赋默认值。
if nargin < 4, angle = 10; end如果输入变量的个数小于4个,那么给angle赋默认值。
......
详细用法 在matlab窗口中输入 help nargin
nargin的用法:
nargin:number of function input arguments,指的是一个函数的输入变量的个数。
用法:nargin或着nargin(fx), 其中fx指的是一个函数名或着函数句柄。
当一个函数的参数中含有varargin变量时,这时候返回值为负。
下面举例说明:
用于nargin:
function c = addme(a, b) switch nargin case 2 c= a + b; case 1 c = a + a ; otherwise c = 0; end
返回的结果为 a + b。
用到nargin(fx):
fx = 'addme'; nargin(fx) ans = 2
当含有 varargin参数时,
function mynewplot(x, y, varargin) fx = 'mynewplot'; nargin(fx) ans = -3
varargin的用法:
varargin:Variable-length input arguments list. 即指的是变输入参数列表;
varargin 就是一个输入 变量,它可以是任意个不定个数的输入参数。要求:第一,指明它用小写的字母表示;第二,在函数的参数列表中,varargin放在最后面。 当函数执行时,varargin就是一个1*n的cell数组。下面我们举例说明:
第一个例子:
function varlist( vargarin) fprintf(' Number of arguments: %d ',nargin); celldisp(varargin) varlist( ones(3), 'some text', pi) Number of arguments:3 varargin{1} = 1 1 1 1 1 1 1 1 1 varargin{2} = some text varargin{3} = 3.1416
第二个例子:
function varlist2(x, y, varargin) fprintf('Total number of inputs = %d ', nargin); nVarargs = length(varargin); fprintf('Inputs in varargin( %d ) : ', nVarargs); for k = 1 : nVarargs fprintf(' %d ', varargin{k} ) end varlist2( 10, 20, 30, 40, 50) Total number of inputs = 5 Inputs in varargin(3): 30 40 50