列中每个值的总和

时间:2017-06-09 01:25:04

标签: matlab unique cumulative-sum

我的矩阵样本如下:

[ 1  43; 
  1  15;
  1  34;   
  5  15;
  5  32;
  7   2;
  7  43;
  7  16;
  7  75 ]

我想要第1列中每个唯一值的总和。因此,它将是:

[ 1   92;    
  5   47;    
  7  136 ]

有可能使用for - 循环,但这会非常耗时。所以我正在寻找更快的解决方案。

1 个答案:

答案 0 :(得分:4)

您可以使用以下代码:

[C,~,ic] = unique(A(:,1));
result = [C, accumarray(ic,A(:,2))];

另外,您可以在标准文档中找到uniqueaccumarray