nargin
-
nargin
编辑
nargin为“number of input arguments”的缩写。 在matlab中定义一个函数时, 在函数体内部, nargin是用来判断输入变量个数的函数。在matlab命令窗口中输入help nargin或者doc nargin即可获得该函数的帮助信息。
- 中文名
- 无
- 外文名
- nargin
- 定 义
- 用来判断输入变量个数的函数
- 类 别
- 计算机编程
- 属 于
- MATLAB函数
功能
编辑nargin是用来判断输入变量个数的函数,特别是在利用了可变参数列表的函数中, 用nargin获取输入参数个数很方便。
调用格式
编辑nargin
nargin(fx)
函数说明
编辑nargin通过调用当前正在执行的函数返回输入参数的数量,只在函数体内使用nargin语法功能。
nargin(fx)在函数fx的定义声明中返回输入参数的个数。如果函数包括varargin其定义,那么nargin返回的输入个数为负。例如函数foo输入有 a,b,和varargin三个参数,那么nargin('foo”)返回值为-3。
应用举例
编辑例1.函数文件 examp.m
function fout=examp(a,b,c)
if nargin==1
fout=a;
else if nargin==2
fout=a+b;
else if nargin==3
fout=(a*b*c)/2;
end
end
end
例1.function名为myplot。
function [x0, y0] = myplot(x, y, npts, angle, subdiv)
% MYPLOTPlot a function.
% MYPLOT(x, y, npts, angle, subdiv)
%The first two input arguments are
%required; the other three have default values...
ifnargin< 5, subdiv = 20; end
ifnargin< 4, angle = 10; end
ifnargin< 3, npts = 25; end
...
if nargout == 0
plot(x, y)
else
x0 = x;
y0 = y;
end
% MYPLOTPlot a function.
% MYPLOT(x, y, npts, angle, subdiv)
%The first two input arguments are
%required; the other three have default values...
ifnargin< 5, subdiv = 20; end
ifnargin< 4, angle = 10; end
ifnargin< 3, npts = 25; end
...
if nargout == 0
plot(x, y)
else
x0 = x;
y0 = y;
end
end
注:%x,y是两个变量,npt,angle,subdiv这三个参数具有默认值,不需要输入。
if nargin < 5, subdiv = 20; end如果输入变量的个数小于5个,那么给subdiv赋默认值。
if nargin < 5, subdiv = 20; end如果输入变量的个数小于5个,那么给subdiv赋默认值。
if nargin < 4, angle = 10; end如果输入变量的个数小于4个,那么给angle赋默认值。
详细用法 在matlab窗口中输入 help nargin
例3.
function foo(argA, argB, argC, varargin)
fprintf('How many input arguments? %d\n', nargin);
fprintf('The input arguments are: %d %d %d ', argA, argB, argC);
for k=1:size(varargin, 2)
disp(varargin{k})
end
disp('Done');
end
输出结果
>> foo(1, 2, 3)
How many input arguments? 3
The input arguments are: 1 2 3 Done
>> foo(1, 2, 3, [4, 5, 6])
How many input arguments? 4
The input arguments are: 1 2 3 4 5 6
Done