function [p,inds] = getPX(P,m,n,X,ii) % p = P(X(ii) = x) % works for all distrubutions P on m^n if length(ii)==0 p = 1; else dims = repmat([m],[1 n]); v = repmat({1:m},[1 n]); for j=1:length(ii) v{ii(j)} = X(j); end xx = list_all_ind_g(v); inds = coord2ind(xx,dims); p = sum(P(inds)); end X=X-1; ii=ii-1; fprintf('X=[%s] ii=[%s] p=%1.6f \n',num2str(X),num2str(ii),p); return