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

波变换

开发平台:

Matlab

  1. function [t,child,tndata] = nodesplt(t,node)
  2. %NODESPLT Split (decompose) node.
  3. %   T = NODESPLT(T,N) returns the modified tree T
  4. %   corresponding to the decomposition of the node N.
  5. %
  6. %   The nodes are numbered from left to right and
  7. %   from top to bottom. The root index is 0.
  8. %
  9. %   This method overloads the NTREE method and 
  10. %   calls the right overloaded method SPLIT.
  11. %
  12. %   See also SPLIT, NODEJOIN.
  13. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 15-Oct-96.
  14. %   Last Revision: 21-May-2003.
  15. %   Copyright 1995-2004 The MathWorks, Inc.
  16. %   $Revision: 1.5.4.2 $  $Date: 2004/03/15 22:37:33 $
  17. [n_rank,node] = findactn(t,node,'a_tn');
  18. if isempty(n_rank)
  19.     child  = [];
  20.     tndata = [];
  21.     return
  22. end
  23. order  = treeord(t);
  24. t_tree = get(t,'ntree');
  25. node   = depo2ind(order,node);
  26. x      = read(t,'data',node);
  27. t_tree = nodesplt(t_tree,node);
  28. t      = set(t,'ntree',t_tree);
  29. child  = node*order+[1:order]';
  30. tndata = split(t,node,x);
  31. sizes  = zeros(order,2);
  32. data   = [];
  33. for k =1:order
  34.     tmp = tndata{k};
  35.     sizes(k,:) = size(tmp);
  36.     data = [data tmp(:)'];
  37. end
  38. t     = fmdtree('tn_write',t,n_rank,sizes,data);
  39. aninf = defaninf(t,child,tndata);
  40. t     = fmdtree('an_write',t,[child sizes aninf],'add');