function T = randdtree(n) % for directred trees T = zeros(n); T(1,2) = 1; for i=3:n % attach each node to a random one in the tree curnodes = find(sum(T)); curnodes(end+1)=1; jj = randperm(i-1); %j = jj(1); try j = curnodes(jj(1)); catch keyboard end T(j,i) = 1; end % order tree properly sig = lexordtree(T); sig = invperm(sig); T1 = T*0; [nodesi,nodesj]=find(T); ne = length(nodesi); for e=1:ne i = nodesi(e); j = nodesj(e); T1(sig(i),sig(j)) = 1; end T = T1; return