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