matlab函数重载

nargin和nargout分别返回它所在函数当前被调用时实际输入的项数
nargchk()检查输入的参数个数是否符合指定的范围:
msgstr=nargchk(minargs,maxargs,numargs)
msgstr=nargchk(minargs,maxargs,numargs,'string')
其中,minargs和maxargs合法的最大值最小值,numargs为求得的输入项的项数,可直接为函数nargin
如果输入变量个数超出范围,则返回错误信息;如果变量个数在范围内则返回空矩阵。
例:实现两个数相加或者三个数相乘
function B = addd(varargin) 
% varargin是matlab内部变量,cell型,依次存储函数的所有输入变量
% 如add(A1, A2, A3), 则 varargin{1} = A1, varargin{2} = A2, varargin{3} = A3
% nargin同样也是matlab内部变量, 为函数输入   变量的个数  
%如果变量个数小于2大于3,则报错
error(nargchk(2,3,nargin));
if nargin == 2     
     A1      = varargin{1};     
     A2      = varargin{2};    
     B=A1+A2; 
else    
     A1      = varargin{1};   
     A2      = varargin{2};
     A3      =varargin{3};
     B=A1*A2*A3; 
end ;

>> addd(1)
Error using addd (line 2)
Not enough input arguments.
 
>> addd(1,2,3,4)
Error using addd (line 2)
Too many input arguments.

>> addd(7,2,3)
ans =
     42


varargin变量用法灵活,如 function add(var1,var2,varargin)
此时varargin存储的是var1和var2之后的变量


你可能感兴趣的:(matlab)