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

波变换

开发平台:

Matlab

  1. function t = write(t,varargin)
  2. %WRITE Write values in WDECTREE object fields.
  3. %   T = write(T,'cfs',NODE,COEFS) writes coefficients for the
  4. %   terminal node NODE.
  5. %
  6. %   T = write(T,'cfs',N1,CFS1,'cfs',N2,CFS2, ...) writes coefficients
  7. %   for the terminal nodes N1, N2, ...
  8. %
  9. %   Caution:
  10. %     The cofficients values has to have the suitable sizes.
  11. %     Use S = READ(T,'sizes',NODE) or S = READ(T,'sizes',[N1;N2; ... ])
  12. %     to get those sizes.
  13. %
  14. %   Examples:
  15. %     % Create a wavelet packets tree.
  16. %     x = rand(1,512);
  17. %     WT_Settings = struct('typeWT','dwt','wname','db1',...
  18. %            'extMode','sym','shift',0);
  19. %     t = wdectree(x,2,3,WT_Settings);
  20. %     t = wdtjoin(t,[4;5]);
  21. %     plot(t);
  22. %
  23. %     % Write values.
  24. %     sNod = read(t,'sizes',[4,5]);
  25. %     cfs4  = zeros(sNod(1,:));
  26. %     cfs5  = zeros(sNod(2,:));
  27. %     t = write(t,'cfs',4,cfs4,'cfs',5,cfs5);
  28. %
  29. %   See also DISP, GET, READ, SET.
  30. %   INTERNAL OPTIONS :
  31. %----------------------
  32. %   The valid choices for PropName are:
  33. %     'ent', 'ento', 'sizes':
  34. %        Without PropParam or with PropParam = Vector of nodes indices.
  35. %
  36. %     'cfs':  with PropParam = One node indices.
  37. %       ,
  38. %     'allcfs', 'entName', 'entPar', 'wavName': without PropParam.
  39. %     
  40. %     'wfilters':
  41. %        without PropParam or with PropParam = 'd', 'r', 'l', 'h'.
  42. %
  43. %     'data' :
  44. %        without PropParam or
  45. %        with PropParam = One terminal node indices or
  46. %             PropParam = Vector terminal node indices.
  47. %        In the last case, the PropValue is a cell array.
  48. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi  12-Feb-2003.
  49. %   Last Revision: 11-Jul-2003.
  50. %   Copyright 1995-2004 The MathWorks, Inc.
  51. %   $Revision: 1.1.6.2 $ $Date: 2004/03/15 22:39:03 $ 
  52. nbin = length(varargin);
  53. k = 1;
  54. while k<=nbin
  55.     argNAME = lower(varargin{k});
  56.     switch argNAME
  57.         case 'cfs'
  58.             if k>=nbin-1
  59.                 errargt(mfilename,'invalid number of arguments ... ','msg');
  60.                 error('*');
  61.             end
  62.             t = write(t,'data',varargin{k+1:k+2});
  63.             k = k+1;
  64.         case 'allcfs'  , t = write(t,'data',varargin{k+1});
  65.         case 'wavname'
  66.             t.wavInfo.wavName = varargin{k+1};
  67.             [t.wavInfo.Lo_D,t.wavInfo.Hi_D, ...
  68.              t.wavInfo.Lo_R,t.wavInfo.Hi_R] = wfilters(varargin{k+1});
  69.         case 'data',
  70.             if k<nbin-1 & isnumeric(varargin{k+2})
  71.                 t.dtree = write(t.dtree,'data',varargin{k+1:k+2});
  72.                 k = k+1;
  73.             else
  74.                 t.dtree = write(t.dtree,'data',varargin{k+1});
  75.             end
  76.         otherwise
  77.             errargt(mfilename,'switch error ... ','msg');
  78.             error('*');
  79.     end
  80.     k = k+2;
  81. end