根据约束整理值

时间:2013-05-10 13:49:23

标签: matlab merge

我有一个矩阵

       i     j    values
  a =  1     2    10
       1     2    20
       2     1    11
       2     2    10
       2     1     1

我想根据前两列具有相同值的前两列合并矩阵a的行。结果应该看起来像

res =

 1     2    30
 2     1    12
 2     2    10

是否可以在没有循环的情况下执行此操作?

由于

1 个答案:

答案 0 :(得分:0)

检索前两列的唯一对,然后使用将a中的所有行映射到唯一对的索引,最后根据第三列中值的映射进行累积:

[un, ~, subs] = unique(a(:,1:2),'rows');
[un accumarray(subs,a(:,3))]