18 lines
410 B
Text
18 lines
410 B
Text
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
|