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

波变换

开发平台:

Matlab

  1. function [err,fig] = errargt(ndfct,var,type,flagWin)
  2. %ERRARGT Check function arguments type.
  3. %   ERR = ERRARGT(NDFCT,VAR,TYPE)
  4. %   is equal to 1 if any element of input vector or 
  5. %   matrix VAR (depending on TYPE choice listed below) 
  6. %   is not of type prescribed by input string TYPE.
  7. %   Otherwise ERR = 0.
  8. %
  9. %   If ERR = 1, an error message is displayed in the command
  10. %   window. In the header message, the string NDFCT is
  11. %   displayed. This string contains the name of a function.
  12. %
  13. %   Available options for TYPE are :
  14. %   'int' : strictly positive integers
  15. %   'in0' : positive integers
  16. %   'rel' : integers
  17. %
  18. %   'rep' : strictly positive reals
  19. %   're0' : positive reals
  20. %
  21. %   'str' : string
  22. %
  23. %   'vec' : vector
  24. %   'row' : row vector
  25. %   'col' : column vector
  26. %
  27. %   'dat' : dates   AAAAMMJJHHMNSS
  28. %           with    0 <= AAAA <=9999
  29. %                   1 <= MM <= 12
  30. %                   1 <= JJ <= 31
  31. %                   0 <= HH <= 23
  32. %                   0 <= MN <= 59
  33. %                   0 <= SS <= 59
  34. %
  35. %   'mon' : months  MM
  36. %           with    1 <= MM <= 12
  37. %
  38. %   A special use of ERRARGT is ERR = ERRARGT(NDFCT,VAR,'msg')
  39. %   for which ERR = 1 and the string VAR is the error message.
  40. %
  41. %   See also ERRARGN.
  42. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 01-May-96.
  43. %   Last Revision: 24-Apr-2003.
  44. %   Copyright 1995-2004 The MathWorks, Inc.
  45. %   $Revision: 1.15.4.2 $ $Date: 2004/03/15 22:40:29 $
  46. [r,c] = size(var);
  47. err = 0;
  48. switch type
  49.     case 'int'
  50.         if (ischar(var) | any(var < 1) | any(var ~= fix(var)))
  51.             err = 1; txt = 'integer(s) > 0 , expected';
  52.         end
  53.     case 'in0'
  54.         if (ischar(var) | any(var < 0) | any(var ~= fix(var)))
  55.             err = 1; txt = 'integer(s) => 0 , expected';
  56.         end
  57.     case 'rel'
  58.         if (ischar(var) | any(var ~= fix(var)))
  59.             err = 1; txt = 'integer(s) expected';
  60.         end
  61.     case 'rep'
  62.         if (ischar(var) | any(var <= 0)) 
  63.             err = 1; txt = 'real(s) > 0 , expected';
  64.         end
  65.     case 're0'
  66.         if (ischar(var) | any(var < 0))
  67.             err = 1; txt = 'real(s) => 0 , expected';
  68.         end
  69.     case 'str'
  70.         if any(~ischar(var))
  71.             err = 1; txt = 'string expected';
  72.         end
  73.     case 'vec'
  74.         if r ~= 1 & c ~= 1
  75.             err = 1; txt = 'vector expected';
  76.         end
  77.     case 'row'
  78.         if r ~= 1
  79.             err = 1; txt = 'row vector expected';
  80.         end
  81.     case 'col'
  82.         if c ~= 1
  83.             err = 1; txt = 'column vector expected';
  84.         end
  85.     case 'dat'
  86.         if isempty(var)
  87.             err = 1; txt = 'date expected';
  88.         else
  89.             ss = rem(var,100);
  90.             mn = rem(fix(var/100),100);
  91.             hh = rem(fix(var/10000),100);
  92.             jj = rem(fix(var/1000000),100);
  93.             mm = rem(fix(var/100000000),100);
  94.             aa = fix(var/10000000000);
  95.             if any(...
  96.                     ss < 0 | ss > 59 |...
  97.                     mn < 0 | mn > 59 |...
  98.                     hh < 0 | hh > 24 | (hh == 24 & (ss ~= 0 | mn ~= 0)) |...
  99.                     jj < 1 | jj > 31 | ...
  100.                     mm < 1 | mm > 12 | ...
  101.                     aa < 0 | aa > 9999 ...
  102.                     ) 
  103.                err = 1; txt = 'date expected';
  104.             end
  105.         end
  106.     case 'mon'
  107.         if (any(var < 1 | var > 12 | var ~= fix(var)))
  108.             err = 1; txt = 'month expected';
  109.         end
  110.     case 'msg'
  111.         err = 1; txt = var;
  112.     otherwise
  113.         err = 1; txt = 'undefined type of variable';
  114. end
  115. fig = [];
  116. if err == 1
  117.     if size(txt,1) == 1
  118.         msg   = [' ' ndfct ' ---> ' xlate(txt)];
  119.     else
  120.         msg = strvcat([' ' ndfct ' ---> '],txt);
  121.     end
  122.     if type=='msg'
  123.         txttitle = 'ERROR ... ';
  124.     else
  125.         txttitle = 'ARGUMENTS ERROR';
  126.     end
  127.     % if GUI is used messages are displayed in a window
  128.     % else the Matlab command window is used.
  129.     %--------------------------------------------------
  130. if nargin<4 , flagWin = 1; end
  131.     if ~mextglob('is_on') | ~flagWin
  132.         lenmsg = length(msg); len = lenmsg+2;
  133.         star   = '*'; star  = star(:,ones(1,len));
  134.         minus  = '-'; minus = minus(:,ones(1,len));
  135.         disp(' ')
  136.         disp(star);
  137.         disp(txttitle);
  138.         disp(minus);
  139.         disp(msg);
  140.         disp(star);
  141.         disp(' ')
  142.     else
  143.         fig = errordlg(msg,txttitle,'modal');
  144.     end
  145. end