Ik heb een probleem bij het maken van mijn for-lus. Dit was de opdracht:
Schrijf een functie structuur die voor een gegeven (1 x n) vector v, met als elementen [v1 v2 ... vn], een matrix V maakt die als volgt gestructureerd is
v1 v2 v3 ... v(n-2) v(n-1) v(n)
-v2 v1 v2 v3 ... v(n-2) v(n-1)
V= -v3 -v2 v1 v2 v3 ... v(n-2)
... ... ... ... ... ... ...
-v(n-2) ... ... ... ... v2 v3
-v(n-1) -v(n-2) ... ... ... v1 v2
-v(n) -v(n-1) -v(n-2) ... -v3 -v2 v1
De elementen van de hoofddiagonaal zijn allen gelijk aan v1.
De elementen van diagonaal i in de bovendriehoek zijn allen gelijk
aan v(i+1), met 1 ≤ i ≤ n-1.
De elementen van diagonaal i in de benedendriehoek zijn allen
gelijk aan -vi+1, met 1 ≤ i ≤ n-1.
Nu is het dus de bedoeling om deze matrix V via twee for-lussen te maken zonder dat het commando diag erin voorkomt. Invoer is v en uitvoer is V.
Ik was al tot deze functie gekomen, maar die is alleen maar juist voor de hoofddiagonaal en de diagonaal daarboven en daaronder. Kan iemand mij aub zeggen wat ik moet veranderen opdat die voor alle diagonalen juist is??? Alvast bedankt!
function V=structuur(v)
n=length(v);
i=1:n;
v= v(i);
V(i,i)= v(1);
for i=1:(n-1)
for m=0:(i-1);
V(i,i+1)=v((i+1)-m);
V(i+1,i)=-v((i+1)-m);
end
end