MATLAB。如何在第二列上对行具有相同值的第一列的所有行求和?

时间:2018-04-25 14:58:29

标签: matlab

在MATLAB上。我们假设我有一个矩阵A(i,j)。在这种情况下,i = 5,j = 4。我希望在第二列的行中具有相同的值时,对第一列的所有行求和。采用如下矩阵:

4000    54571
4000    54571
4000    54572
4000    54573
4000    54574

我想写一个返回的代码:

8000    54571
4000    54572
4000    54573
4000    54574

你对如何做到这一点有想法吗?

非常感谢,

1 个答案:

答案 0 :(得分:1)

您可以使用uniqueaccumarray

分两步完成
octave:1> X=[4000    54571
> 4000    54571
> 4000    54572
> 4000    54573
> 4000    54574
> ]
X =

    4000   54571
    4000   54571
    4000   54572
    4000   54573
    4000   54574

octave:2> [keys,~,values] = unique(X(:,2));
octave:3> [accumarray(values,X(:,1)), keys]
ans =

    8000   54571
    4000   54572
    4000   54573
    4000   54574