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

波变换

开发平台:

Matlab

  1. function tab = descendants(t,node,type,flagdp)
  2. %DESCENDANTS Construction of descendants table.
  3. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 21-May-2003.
  4. %   Last Revision: 22-May-2003.
  5. %   Copyright 1995-2004 The MathWorks, Inc.
  6. % $Revision: 1.1.6.2 $
  7. order = treeord(t);
  8. depth = treedpth(t);
  9. tn = leaves(t);
  10. node = depo2ind(order,node);
  11. % Construction of ascendants table.
  12. %----------------------------------
  13. tab = zeros(length(tn),depth+1);
  14. tab(:,1) = tn;
  15. for j = 1:depth
  16.     tab(:,j+1) = floor((tab(:,j)-1)/order);
  17. end
  18. % Find descendants.
  19. %------------------
  20. [row,col] = find(tab==node);
  21. switch type
  22.    case 'all'    , first = 1; 
  23.    case 'not_tn' , first = 2; row = row(col>2);
  24. end
  25. last = max(col)-1;
  26. tab  = tab(row,first:last);
  27. tab  = tab(:);
  28. tab  = tab(tab>node);
  29. tab  = [node ; wunique(tab)];
  30. if nargin==4 && flagdp
  31.     [tab(:,1),tab(:,2)] = ind2depo(order,tab);
  32. end