function h = etaijX(P,m,n,i,j,X) P0 = getcondP(P,m,n,[j:n],[1:i ],[X(1:i )]) P1 = getcondP(P,m,n,[j:n],[1:i-1],[X(1:i-1)]) h = .5*sum(abs(P0-P1)); %keyboard return pmargx = getPX(P,m,n,X,1:i) pmargx1 = getPX(P,m,n,X(1:i-1),1:i-1) %return for zi = 1:m^(n-j+1) z = ind2coord(zi,repmat(m,1,(n-j+1))); pmargu = getPX0(P,m,n,[X z],[1:i,j:n]); pmargu1 = getPX0(P,m,n,[X(1:i-1) z],[1:i-1,j:n]); %fprintf('pmargu = %1.5f pmargu1 = %1.5f \n',pmargu,pmargu1); end return %function Pjj = getcondP(P,m,n,jj,ii,y) % Pjj(x) = P{ X[jj]=x | X[ii]=y }