2013-04-11 32 views
5

Ho una matrice di indici come indici = [1,3,1; 2,4,2; 1,3,1].
Ho una matrice di valori come valori = [5,9,2; 3,4,1; 6,8,7].
Voglio creare una nuova matrice combinata = [5 + 2 + 6 + 7,9 + 8; 3 + 1,4] senza utilizzare un ciclo for. "Combinato" dovrebbe consistere degli elementi dei "valori" della matrice sommati in base a ciò che i loro rispettivi indici sono negli "indici" della matrice.
Avete qualche suggerimento su come affrontare questo in MATLAB? Grazie in anticipo!Combinare una matrice di valori e indici in MATLAB

risposta

1

È possibile utilizzare la funzione GRPSTATS dalla Casella degli strumenti statistici:

val = [5,9,2 ; 3,4,1 ; 6,8,7]; 
idx = [1,3,1 ; 2,4,2 ; 1,3,1]; 

result = grpstats(val(:),idx(:),'sum'); 
result = reshape(result, 2, 2); 
Problemi correlati