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

波变换

开发平台:

Matlab

  1. function t = nodesplt(t,node)
  2. %NODESPLT Split (decompose) node(s).
  3. %   T = NODESPLT(T,N) returns the modified tree T
  4. %   corresponding to the decomposition of the node(s) N.
  5. %
  6. %   The nodes are numbered from left to right and
  7. %   from top to bottom. The root index is 0.
  8. %
  9. %   See also NODEJOIN.
  10. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 12-Mar-96.
  11. %   Last Revision: 21-May-2003.
  12. %   Copyright 1995-2004 The MathWorks, Inc.
  13. %   $Revision: 1.4.4.2 $  $Date: 2004/03/15 22:38:27 $
  14. [n_rank,node] = findactn(t,node,'a_tn');
  15. nbn = length(n_rank);
  16. if nbn==0 , return; end
  17. order = treeord(t);
  18. tn = leaves(t);
  19. tmp = tn(1:n_rank(1)-1);
  20. for k=1:nbn-1
  21.     i_child = (node(k)*order)+[1:order]';
  22.     tmp     = [tmp ; i_child ; tn(n_rank(k)+1:n_rank(k+1)-1)];
  23. end
  24. tn = [tmp ; (node(nbn)*order)+[1:order]' ; tn(n_rank(nbn)+1:end)];
  25. switch order
  26.   case 1    , depth = max(tn);
  27.   otherwise , depth = floor(log((order-1)*max(tn)+1)/log(order));
  28. end
  29. t = set(t,'depth',depth,'tn',tn);