matlab函数重载

来源:互联网 发布:东南大学网络认证 编辑:程序博客网 时间:2024/06/08 10:42
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之后的变量


0 0