2013-05-12 4 views
-5

Comment puis-je calculer la moyenne d'un groupe de lignes et mettre la dans une matrice telle que:Calculer la moyenne ensemble de lignes dans une matrice

1 4 5 
1 34 4 
1 65 0 
1 5 3 
2 3 44 
2 52 4 
2 5 6 
3 9 2 
3 9 1 
3 9 9 

Je peux donc avoir une matrice comme

1 27 4 
2 20 18 
3 9 4 

Thx

+0

Qu'est-ce qui définit un "groupe de rangées"? Est-ce la valeur dans la première colonne? – Floris

+0

@Shai Oh, ces gars sont assis dans la même classe CS, je vois. –

+2

@ H2CO3 et quelle classe c'est ... – Shai

Répondre

0

en supposant que les données d'origine se trouve dans la matrice A:

indx=unique(A(:,1)); 
for ii=1:numel(indx) 
    RowMean(ii,:)=mean(A(1,:)==indx(ii),:); 
end 
+2

Vous pouvez éviter la boucle for en utilisant la fonction 'accumarray', comme [montré ici] (http://stackoverflow.com/questions/16086874#16087358) ... –

+0

@eitan vous avez raison. C'est "un" moyen, pas le "meilleur" moyen. Merci pour le lien. – Floris

Questions connexes