Costruire matrice partendo da un vettore in matlab

Messaggioda Aki29 » 13/01/2018, 10:49

Buongiorno, il mio problema riguarda la costruzione di una matrice simmetrica di dimensione $p$, dove $p$ rappresenta un numero naturale, partendo da un vettore contenente tutti gli elementi della matrice.
Un esempio con dimensione 4:
Partendo cioè dal vettore $v=[1;1; 1;1 ;2 ;3 ;4; 5; 6; 7]$ voglio scrivere la matrice di dimensione 4 con i primi 4 elementi del vettore $v$ sulla diagonale e gli altri elementi posti al di fuori della diagonale ovvero:

$A=[[1,2,3,4],[2,1,5,6],[3,5,1,7],[4,6,7,1]]$

Io ho creato un codice del tipo:

C=zeros(p);\\
C(end-1,end)=v(end);\\
C(end,end-1)=v(end);\

for i=2:m-1
C(end-i,end-i+1:end)=v(end-i+1:end-i);
C(end-i+1:end,end-i)=v(end-i+1:end-i);
end

C=diag(theta_stim(1:p));
C

Ma Matlab mi ritorna l'errore: "Subscripted assignment dimension mismatch"
Qualcuno saprebbe dirmi come fare? Dovrei creare un ciclo per una matrice di dimensione più grande.
Grazie
Aki29
Starting Member
Starting Member
 
Messaggio: 1 di 2
Iscritto il: 13/01/2018, 10:23

Torna a Analisi Numerica e Ricerca Operativa

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite