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

波变换

开发平台:

Matlab

  1. function varargout = read(t,varargin)
  2. %READ Read values in WDECTREE object fields.
  3. %   VARARGOUT = READ(T,VARARGIN) is the most general syntax to read
  4. %   one or more property values from the fields of a WDECTREE object.
  5. %
  6. %   The different ways to call the READ function are:
  7. %     PropValue = READ(T,'PropName') or
  8. %     PropValue = READ(T,'PropName','PropParam')
  9. %     Or any combination of previous syntaxes:
  10. %     [PropValue1,PropValue2, ...] = ...
  11. %         READ(T,'PropName1','PropParam1','PropName2','PropParam2',...)
  12. %         PropParam is optional.
  13. %
  14. %   The valid choices for PropName are:
  15. %     'cfs': With PropParam = One terminal node index.
  16. %        cfs = READ(T,'cfs',NODE) is equivalent to
  17. %        cfs = READ(T,'data',NODE) and returns the coefficients
  18. %        of the terminal node NODE.
  19. %     
  20. %     'wfilters' (see WFILTERS):
  21. %        without PropParam or with PropParam = 'd', 'r', 'l', 'h'.
  22. %
  23. %     'data' :
  24. %        without PropParam or
  25. %        with PropParam = One terminal node index or
  26. %             PropParam = Column vector of terminal node indices.
  27. %        In the last case, the PropValue is a cell array.
  28. %        Without PropParam, PropValue contains the coefficients of
  29. %        the tree nodes in ascending node index order.
  30. %
  31. %   Examples:
  32. % INTERNAL OPTIONS:
  33. %------------------
  34. % 'tnsizes':
  35. %    Without PropParam or with PropParam = Vector of terminal node ranks.
  36. %    The terminal nodes are ordered from left to right.
  37. %    Examples:
  38. %      stnAll = read(t,'tnsizes');
  39. %      stnNod = read(t,'tnsizes',[1,2]);
  40. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 13-Mar-2003.
  41. %   Last Revision: 13-Mar-2003.
  42. %   Copyright 1995-2004 The MathWorks, Inc.
  43. %   $Revision: 1.1.6.2 $  $Date: 2004/03/15 22:38:54 $
  44. nbin = length(varargin);
  45. k    = 1;
  46. kout = 1;
  47. while k<=nbin
  48.   argNAME = lower(varargin{k});
  49.   switch argNAME
  50.       case 'cfs'
  51.           if k<nbin
  52.               arg = varargin{k+1}; k = k+1;
  53.           else
  54.               errargt(mfilename,'invalid node index ... ','msg');
  55.               error('*');
  56.           end
  57.           varargout{kout} = read(t,'data',arg);
  58.           kout = kout+1;
  59.       case 'allcfs'  , varargout{kout} = read(t,'data');    kout = kout+1;
  60.       case 'wavname' , varargout{kout} = t.wavInfo.wavName; kout = kout+1;
  61.       case 'wfilters'
  62.           if k<nbin, arg = varargin{k+1}; else , arg = 'last'; end
  63.           switch arg
  64.             case 'd'
  65.               varargout{kout} = t.wavInfo.Lo_D; kout = kout+1;
  66.               varargout{kout} = t.wavInfo.Hi_D; kout = kout+1;
  67.               k = k+1;
  68.             case 'r'
  69.               varargout{kout} = t.wavInfo.Lo_R; kout = kout+1;
  70.               varargout{kout} = t.wavInfo.Hi_R; kout = kout+1;
  71.               k = k+1;
  72.             case 'l'
  73.               varargout{kout} = t.wavInfo.Lo_D; kout = kout+1;
  74.               varargout{kout} = t.wavInfo.Lo_R; kout = kout+1;
  75.               k = k+1;
  76.             case 'h'
  77.               varargout{kout} = t.wavInfo.Hi_D; kout = kout+1;
  78.               varargout{kout} = t.wavInfo.Hi_R; kout = kout+1;
  79.               k = k+1;
  80.             otherwise
  81.               varargout{kout} = t.wavInfo.Lo_D; kout = kout+1;
  82.               varargout{kout} = t.wavInfo.Hi_D; kout = kout+1;
  83.               varargout{kout} = t.wavInfo.Lo_R; kout = kout+1;
  84.               varargout{kout} = t.wavInfo.Hi_R; kout = kout+1;
  85.               if isequal(arg,'all') | isequal(arg,'a'), k = k+1; end
  86.             end
  87.       case {'an','sizes','data','tnsizes'}
  88.           field = varargin{k};
  89.           if k<nbin & ...
  90.              (isnumeric(varargin{k+1}) | isequal(varargin{k+1},'all'))
  91.               arg = varargin{k+1}; k = k+1;
  92.           else
  93.               arg = 'all';
  94.           end
  95.           varargout{kout} = read(t.dtree,field,arg); kout = kout+1;
  96.       otherwise
  97.           errargt(mfilename,'switch error ... ','msg');
  98.           error('*');
  99.   end
  100.   k = k+1;
  101. end