1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
function res=ma(n)
%n : taille de ta matrice
res=zeros(n);
co=linspace(1,(n^2-n)/2+n,(n^2-n)/2+n);
k=1;
n1=n;
if n1/2==ceil(n1/2)
com1=[linspace(0,floor(n1/2)-1,floor(n1/2)),linspace(floor(n1/2)-1,0,floor(n1/2))]
else
com1=[linspace(0,floor(n1/2)-1,floor(n1/2)),floor(n1/2),linspace(floor(n1/2)-1,0,floor(n1/2))]
end
n2=n-1;
if n2/2==ceil(n2/2)
com2=[linspace(0,floor(n2/2)-1,floor(n2/2)),linspace(floor(n2/2)-1,0,floor(n2/2))]
else
com2=[linspace(0,floor(n2/2)-1,floor(n2/2)),floor(n2/2),linspace(floor(n2/2)-1,0,floor(n2/2))]
end
for l=1:n-1
res(l,l)=co(k);
k=k+1;
for cot=1:com1(l)
res(l-cot,l+cot)=co(k);
res(l+cot,l-cot)=co(k);
k=k+1;
end
res(l+1,l)=co(k);
res(l,l+1)=co(k);
k=k+1;
for cot=1:com2(l)
res(l+1+cot,l-cot)=co(k);
res(l-cot,l+1+cot)=co(k);
k=k+1;
end
end
res(n,n)=co(end); |
Partager