function Aiijj = treetensor(T,A,ii,jj) % the probability transition tensor % from nodes ii to nodes jj global m lii = length(ii); ljj = length(jj); dimA = repmat([m],[1 lii+ljj]); Aiijj = zeros(prod(dimA),1); Dii = repmat([m],[1 lii]); Djj = repmat([m],[1 ljj]); for xi=1:prod(Dii) x = ind2coord(xi,Dii); for yi=1:prod(Djj) y = ind2coord(yi,Djj); p = 1; for vi = 1:length(jj) v = jj(vi); [u,ui] = parent(T,v,ii); p = p * A(u,v,y(vi),x(ui)); end tind = coord2ind([y x],dimA); Aiijj(tind) = p; end end Aiijj = reshape(Aiijj,dimA); return function [u,ui] = parent(T,v,uu) u = find(T(:,v)); ui = find(uu==u); return