nargin为“number of input arguments”的缩写。 在matlab中定义一个函数时, 在
函数体内部, nargin是用来判断输入变量个数的函数。在matlab命令窗口中输入help nargin或者doc nargin即可获得该函数的帮助信息。
功能
nargin是用来判断输入变量个数的函数,特别是在利用了可变参数列表的函数中, 用nargin获取输入参数个数很方便。
调用格式
nargin
nargin(fx)
相关:varargout、nargout、varargin
函数说明
nargin通过调用当前正在执行的函数返回输入参数的数量,只在函数体内使用nargin语法功能。
nargin(fx)在函数fx的定义声明中返回输入参数的个数。如果函数包括varargin其定义,那么nargin返回的输入个数为负。例如函数foo输入有 a,b,和varargin三个参数,那么nargin('foo”)返回值为-3。
应用举例
例1:函数文件 examp.m
例2:function名为myplot。
注:%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()和nargout()是函数而不是变量,因此用户不能用诸如nargin=nargin+pi之类的语句对它们进行重新赋值。
nargin和 nargout0是函数,当在函数中调用这两个函数时,其值为该函数的输入或输出参数,而不需要进行声明。如上面的例子中,在函数A中调用nargin(B(nargin,Y*rand(4)))表示函数A的输入参数个数,在函数C中调用nargin表示函数C的输入参数个数。
相关函数:varargin
varargin是参数数目可变的函数。
函数nargin()和函数nargout()允许函数接收或返回任意数目的参数。在嵌套函数中也可以使用可变参数。但需要注意的是,varargin、varargout和nargin、nargout的意义可能有所不同。
varargin和varargout为变量,与MATLAB其他变量的作用范围相同。由于嵌套函数与主函数使用相同的工作区,因此varargin和varargout既可以表示嵌套函数的输入输出参数,也可以是主函数的输入/输出函数,具体值取决于程序中的变量声明:
(1)如果
嵌套函数在函数声明中包含varargin或者varargout,则在该函数内部调用这两个变量时,变量内容为该函数的输入输出参数;
(2)如果嵌套函数声明中没有包含varargin或者varargout,而在该函数的上层函数声明中包含varargin或者varargout,则当在该嵌套函数内部调用这两个变量时,变量内容为上层函数的输入输出参数。
例3:
输出结果如下
nargin与nargout
nargin和nargout用来表示函数变量的数目。
语法
(1)n=nargin
(2)n=nargin('fun')
(3)n=nargout
(4)n=nargout('fun')
函数描述
在一个函数的M文件内部,函数nargin和nargout分别显示用户提供的输入和输出变量的个数。在一个函数的M文件外部,nargin和nargout为一个指定的函数给出其输入或输出变量的个数。当函数的变量个数可变时,变量的个数为负数。
(1)nargin
返回一个函数的输入变量的数目。
(2)nargin('fun')
返回为M文件
函数fun定义的输入变量的个数,或者如果函数的输入变量可变时返回-1。
(3)nargout
为一个函数返回其输出变量的数目。
(4)nargout('fun')