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

波变换

开发平台:

Matlab

  1. function varargout = get(t,varargin)
  2. %GET Get WPTREE object field contents.
  3. %   [FieldValue1,FieldValue2, ...] = ...
  4. %       GET(T,'FieldName1','FieldName2', ...) returns
  5. %   the contents of the specified fields for the WPTREE
  6. %   object T.
  7. %   For the fields that are objects or structures, you
  8. %   may get subfield contents (see example below).
  9. %
  10. %   [...] = GET(T) returns all the field contents of T.
  11. %
  12. %   The valid choices for 'FieldName' are:
  13. %     'dtree'   : dtree parent object
  14. %     'wavInfo' : Structure (wavelet infos)
  15. %        'wavName' - Wavelet Name
  16. %        'Lo_D'    - Low Decomposition filter
  17. %        'Hi_D'    - High Decomposition filter
  18. %        'Lo_R'    - Low Reconstruction filter
  19. %        'Hi_R'    - High Reconstruction filter
  20. %
  21. %     'entInfo' : Structure (entropy infos)
  22. %        'entName' - Entropy Name
  23. %        'entPar'  - Entropy Parameter
  24. %
  25. %   Or fields in DTREE parent object:
  26. %     'ntree' : ntree parent object
  27. %     'allNI' : All nodes Infos
  28. %     'terNI' : Terminal nodes Infos
  29. %     -------------------------------------------------------------------
  30. %      For FieldName = 'allNI', FieldValue allNI is a NBnodes by 5 array 
  31. %      such that:
  32. %      allNI(N,:) = [ind,size(1,1),size(1,2),ent,ento]
  33. %          ind  = index of the node N
  34. %          size = size of data associated with the node N
  35. %          ent  = Entropy of the node N
  36. %          ento = Optimal Entropy the node N
  37. %     -------------------------------------------------------------------
  38. %      For FieldName = 'terNI', FieldValue terNI is a 1 by 2 cell
  39. %      array such that:
  40. %      terNI{1} is an NB_TerminalNodes by 2 array such that:
  41. %         terNI{1}(N,:) is the size of coefficients associated with
  42. %         the Nth terminal node. The nodes are numbered from left 
  43. %         to right and from top to bottom. The root index is 0.
  44. %      terNI{2} is a row vector containing the previous 
  45. %      coefficients stored row-wise in the above specified order.  
  46. %     -------------------------------------------------------------------
  47. %
  48. %   Or fields in NTREE parent object:
  49. %     'wtbo'  : wtbo parent object
  50. %     'order' : Order of tree
  51. %     'depth' : Depth of tree
  52. %     'spsch' : Split scheme for nodes
  53. %     'tn'    : Array of terminal nodes of tree
  54. %
  55. %   Or fields in WTBO parent object:
  56. %     'wtboInfo' : Object information
  57. %     'ud'       : Userdata field
  58. %
  59. %   Examples:
  60. %     x = rand(1,1000);
  61. %     t = wpdec(x,2,'db2');
  62. %     o = get(t,'order');
  63. %     [o,tn] = get(t,'order','tn');
  64. %     [o,allNI,tn] = get(t,'order','allNI','tn');
  65. %     [o,wavInfo,allNI,tn] = get(t,'order','wavInfo','allNI','tn');
  66. %     [o,tn,Lo_D,EntName] = get(t,'order','tn','Lo_D','EntName');
  67. %     [wo,nt,dt] = get(t,'wtbo','ntree','dtree');
  68. %
  69. %   See also DISP, READ, SET, WRITE.
  70. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 01-Jan-97.
  71. %   Last Revision: 18-May-2003.
  72. %   Copyright 1995-2004 The MathWorks, Inc.
  73. %   $Revision: 1.6.4.2 $  $Date: 2004/03/15 22:39:09 $
  74. nbin = length(varargin);
  75. if nbin==0 , varargout = struct2cell(struct(t))'; return; end
  76. varargout = cell(nbin,1);
  77. okArg = ones(1,nbin);
  78. for k=1:nbin
  79.     field = varargin{k};
  80.     try
  81.       varargout{k} = t.(field);
  82.     catch
  83.       lasterr('');
  84.       varargout{k} = get(t.dtree,field);
  85.       if isequal(lasterr,'errorWTBX') , okArg(k) = 0; end
  86.     end    
  87. end
  88. notOk = find(okArg==0);
  89. if ~isempty(notOk)
  90.     [varargout{notOk}] = getwtbo(t,varargin{notOk});
  91. end