我在其中一列中有一个重复数字的矩阵。我想平均重复数字的行。例如,我在第3列的矩阵A
中有重复值:
A =
1 2 1
4 4 2
5 4 2
4 5 2
5 5 3
10 3 3
我想得到
B =
1 2 1
4.3333 4.3333 2.0000
7.5000 4.0000 3.0000
其中每一行是第3列重复行的平均值。
有人可以帮忙吗?
答案 0 :(得分:3)
以下单行平均列N
列中具有重复值的所有行。
cell2mat(arrayfun(@(x)mean(A(A(:, N)==x,:),1), unique(A(:, N)), 'Uniform', 0))
让我们按照您的示例,在第3列中平均所有带有重复项的行:
A = [1 2 1; 4 4 2; 5 4 2; 4 5 2; 5 5 3; 10 3 3];
N = 3;
B = cell2mat(arrayfun(@(x)mean(A(A(:, N)==x,:),1), unique(A(:,N)), 'Uniform', 0))
结果是:
B =
1.0000 2.0000 1.0000
4.3333 4.3333 2.0000
7.5000 4.0000 3.0000