function a = zigzag3(n) a = zeros(n, n); for k=1:n d = (2*(j = mod(k, 2))-1)*(n-1); m = (n-1)*(k-1); a(k+(1-j)*m:d:k+j*m) = k*(k-1)/2:k*(k+1)/2-1; a(n*(n+1-k)+(1-j)*m:d:n*(n+1-k)+j*m) = n*n-k*(k+1)/2:n*n-k*(k-1)/2-1; endfor endfunction >> zigzag3(5) ans = 0 1 5 6 14 2 4 7 13 15 3 8 12 16 21 9 11 17 20 22 10 18 19 23 24