2013-05-12 4 views
-5

Как я могу вычислить среднее значение для группы строк и положить в матрице, такие как:Вычислить средний набор строк в матрице

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 

Так что я могу иметь матрицу, как

1 27 4 
2 20 18 
3 9 4 

Thx

+0

Что определяет «группа строк»? Это значение в первом столбце? – Floris

+0

@Shai О, эти ребята сидят в одном классе CS, я вижу. – 2013-05-12 17:03:32

+2

@ H2CO3 и какой класс это ... – Shai

ответ

0

Предполагая, что исходные данные в матрице A:

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

Вы можете избежать цикла for, используя функцию 'accumarray', как [показано здесь] (http://stackoverflow.com/questions/16086874#16087358) ... –

+0

@eitan вы правы. Это «путь», а не «лучший» способ. Спасибо за ссылку. – Floris

Смежные вопросы