function phi = manualphi(K,m,n) % obviously, only works for legitimate K phi = zeros(1,m^n); dims = repmat([m],[1 n]); ii = find(K<0); for k=1:n % find all inds differing from ii by 1 xx = ind2coord(ii,dims); ii0 = setdiff(1:m^n,ii); ii1 = []; for j = ii0(:)' xj = ind2coord(j,dims); dd = min(sum(abs(xx - repmat(xj,[size(xx,1) 1])),2)); if dd==1 ii1(end+1,1) = j; end end phi(ii1) = k; ii = union(ii,ii1); end return