如何在matlab矩阵中根据第一列数字是否相同来算第二列的均值

有矩阵如下

1 20
2 13
3 18
3 20
4 19
5 21
6 14
7 19
7 17
7 18
8 13
....
400 14
想要根据第一列数字是否相同(如都为3),相应求第二列的平均值。
即得到以下这个矩阵:
1 20
2 13
3 19 即(18+20)/2
4 19
5 21
6 14
7 18 即 (19+17+18)/3

8 13
....
400 14
由于矩阵行数较多,想要得到对应的平均值矩阵,如何编程呢?

第1个回答  2014-04-29

设原矩阵为A,参考代码:

A1 = A(:,1);
A2 = A(:,2);
B1 = unique(A1);
B2 = arrayfun(@(a)mean(A2(A1==a)),B1);
B = [B1 B2]

本回答被提问者采纳
相似回答