Matlab中nargin介绍
nargin为“number of input arguments”的缩写。
功能: 在matlab中定义一个函数时, 在函数体内部, nargin是用来判断输入变量个数的函数。 特别是在利用了可变参数列表的函数中, 用nargin获取输入参数个数很方便。在matlab命令窗口中输入doc nargin或者help nargin即可获得该函数的帮助信息。
例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
复制代码
例2.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
- 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
例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
复制代码 |