0

列の1つに重複した数値を持つ行列があります。重複した番号の行を平均したいと思います。たとえばA、列3のマトリックスに重複する値があります。

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の重複行の平均値です。

誰か助けてもらえますか?

4

1 に答える 1

3

次のワンライナーは、 column に重複する値を持つすべての行を平均化します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
于 2013-03-07T11:52:45.100 に答える