目录
函数输入参数数目
语法
nargin
nargin(fun)
说明
nargin 针对当前正在执行的函数,返回函数调用中给定函数输入参数的数目。该语法仅可在函数体内使用。使用 arguments 验证代码块时,函数内 nargin 返回的值是调用函数时提供的位置参数的个数。可以参考参数验证中的 nargin。
nargin(fun) 返回 fun 函数定义中出现的输入参数的数目。如果该函数定义中包含 varargin,那么 nargin 返回输入数目的负数。例如,如果 myFun 函数声明输入 a、b 和 varargin,那么 nargin('myFun') 返回 -3。
如果输入参数指向一个使用 arguments 验证代码块的函数,则返回值是函数定义中声明的位置参数的个数,表示为非负值。
示例
当前函数的输入
在名为 addme.m 的文件中创建最多可接受两个输入的函数。在函数主体中使用 nargin 确定输入数目。
type addme.m
function c = addme(a,b)
switch nargin
case 2
c = a + b;
case 1
c = a + a;
otherwise
c = 0;
end
end
在命令提示符下使用两个输入调用 addme 函数。
c = addme(13,42)
c = 55
使用一个输入调用该函数。
c = addme(13)
c = 26
为函数定义的输入
确定一个函数可接受多少个输入。上一个示例中创建的 addme 函数在声明语句中包含两个输入(a 和 b)。以字符向量的形式定义函数名称,并使用它作为 nargin 的输入。
fun = 'addme';
nargin(fun)
ans = 2
使用 varargin
的函数的输入
确定使用 varargin 的函数可接受多少个输入。在名为 mynewplot.m 的文件中创建一个函数,该函数接受数值输入 x 和 y,并使用 varargin 返回任意数目的其他绘图输入。
type mynewplot.m
function mynewplot(x,y,varargin)
figure
plot(x,y,varargin{:})
title('My New Plot')
end
查询 newplot 可以接受多少个输入。
fx = 'mynewplot';
nargin(fx)
ans = -3
负号表示第三个输入是 varargin。mynewplot 函数可接受不定数目的附加输入参数。
fun
- 函数
函数句柄 | 字符向量 | 字符串标量
一个函数,nargin 从该函数的定义中返回其输入参数数目;指定为函数句柄、字符向量或字符串标量。