我有一个矩阵
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
是否可以在没有循环的情况下执行此操作?
由于
答案 0 :(得分:0)
检索前两列的唯一对,然后使用将a
中的所有行映射到唯一对的索引,最后根据第三列中值的映射进行累积:
[un, ~, subs] = unique(a(:,1:2),'rows');
[un accumarray(subs,a(:,3))]