errargn.m
上传用户:haiyisale
上传日期:2013-01-09
资源大小:3246k
文件大小:2k
源码类别:

波变换

开发平台:

Matlab

  1. function [err,msg] = errargn(ndfct,nbArgin,setOfargin,nbArgout,setOfargout)
  2. %ERRARGN Check function arguments number.
  3. %   ERR = ERRARGN('function',NBARGIN,SETofARGIN,NBARGOUT,SETofARGOUT) or 
  4. %   [ERR,MSG] = ERRARGN('function',NBARGIN,SETofARGIN,NBARGOUT,SETofARGOUT) 
  5. %   returns ERR = 1 if either the number of input NBARGIN or 
  6. %   output (NBARGOUT) arguments of the specified function do not
  7. %   belong to the vector of allowed values (SETofARGIN and
  8. %   SETofARGOUT, respectively). In this case MSG contains an
  9. %   appropriate error message.
  10. %   Otherwise ERRARGN returns ERR = 0 and MSG = [].
  11. %
  12. %   See also ERRARGT.
  13. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 01-May-96.
  14. %   Last Revision: 16-Apr-2003.
  15. %   Copyright 1995-2004 The MathWorks, Inc.
  16. % $Revision: 1.11.4.2 $
  17. % Special case:
  18. % -------------
  19. %  If SETofARGIN is not a numeric array, the number of input arguments
  20. %  is not controlled. The same holds for SETofARGOUT.
  21. %  example:
  22. %    err = errargn('function',3,'var',2,[1:4]);
  23. %    returns err = 0.
  24. %    [err,msg] = errargn('function',2,[1:4],3,'var');
  25. %    returns err = 0 and msg = [].
  26. err = 0; msg = [];
  27. if isnumeric(setOfargin)
  28.     msg = nargchk(min(setOfargin),max(setOfargin),nbArgin);
  29.     err = ~isempty(msg);
  30.     if ~err
  31.         err = isempty(find(nbArgin==setOfargin));
  32.         if err , msg = 'Invalid number of input arguments.'; end
  33.     end    
  34. end
  35. if ~err & isnumeric(setOfargout)
  36.     msg = nargoutchk(min(setOfargout),max(setOfargout),nbArgout);
  37.     err = ~isempty(msg);
  38.     if ~err
  39.         err = isempty(find(nbArgout==setOfargout));
  40.         if err , msg = 'Invalid number of output arguments.'; end
  41.     end    
  42. end
  43. if err & (nargout<2) , errargt(ndfct,msg,'msg'); end