function G = gridgraph(n) n1 = floor(sqrt(n)); n2 = ceil(sqrt(n)); G = zeros(n); for i=1:n1 for j=1:n2 % connect (i,j) to right neighbor G = connect(G,i,j,i,j+1,n1,n2); % connect (i,j) to lower neighbor G = connect(G,i,j,i+1,j,n1,n2); end end return function G = connect(G,i1,j1,i2,j2,n1,n2) if (max(i1,i2)<=n1) & (max(j1,j2)<=n2) ij1 = coord2ind([i1 j1],[n1 n2]); ij2 = coord2ind([i2 j2],[n1 n2]); G(ij1,ij2) = 1; G(ij2,ij1) = 1; end return