28 lines
483 B
Text
28 lines
483 B
Text
function a = zigzag1(n)
|
|
j = 1:n;
|
|
u = repmat([-1; 1], n, 1);
|
|
v = j.*(2*j-3);
|
|
v = reshape([v; v+1], 2*n, 1);
|
|
a = zeros(n, n);
|
|
for i = 1:n
|
|
a(:, i) = v(i+j);
|
|
v += u;
|
|
endfor
|
|
endfunction
|
|
|
|
function a = zigzag2(n)
|
|
a = zigzag1(n);
|
|
v = (1:n-1)'.^2;
|
|
for i = 2:n
|
|
a(n+2-i:n, i) -= v(1:i-1);
|
|
endfor
|
|
endfunction
|
|
|
|
>> zigzag2(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
|