function A = randwalk_cube(n) % the Markov transition matrix A = zeros(2^n); for xi = 1:2^n x = i2c(xi,2,n); A(xi,xi) = 1/2; % stay put w/prob 1/2 for i=1:n y = x; y(i) = 1-y(i); yi = c2i(y,2,n); A(yi,xi) = 1/(2*n); % go to neighbor w/prob 1/(2n) end end return function i=c2i(c,m,n) dims = repmat(m,[1 n]); i = coord2ind(c+1,dims); return function c=i2c(i,m,n) dims = repmat(m,[1 n]); c = ind2coord(i,dims)-1; return