[MatLab] problema in matab

sylar91
ciao a tutti, ho creato un ciclo for in matlab per calcolarmi una serie di matrici ( i matrici 2x2 per i che va da 1 a 1000 per esempio) , il problema è che con il loop praticamente viene salvata solamente l'ultima matrice calcolata, mentre le altre vanno perse. Esiste un modo per tenere salvate tutte le matrici che mi calcolo con l'algoritmo, per ogni i?
vi faccio un esempio semplice:

for i = 1:2000
Q = (1 - a - b) * qbar + a * ( Ret_star(1,i-1) *Ret_star1(i-1,1) ) ;
end
tralasciando il significato di Ret_sta e qbar, in questo modo dovrei crearmi 2000 matrici Q che sono 2x2, però mi viene salvata solo l'ultima calcolata con i = 2000, come faccio a salvarle tutte e a porre un indice, tipo come si fanno con gli scalari dove metti a(i) e ti crea i scalari?

Risposte
Dante.utopia
Forse va anche su matlab!!!

octave-3.2.4:9>M = cell(1,5)
octave-3.2.4:9> for i = 1:5
> M(1,i) = [i i; i i]
> end
octave-3.2.4:10> M(1,3)

cinclus
Puoi creare una matrice in 3 dimensioni e aggiungere a ogni iterazione la matrice.

a=zeros(m,n,l)
%m,n sono le dimensioni della singola matrice e l è la terza dimensione ovvero il numero di matrici che vuoi salvare

for i=1:2000
Q = (1 - a - b) * qbar + a * ( Ret_star(1,i-1) *Ret_star1(i-1,1) ) ;
a(:,:,i)=Q
end

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.