【问题标题】:Collating values based on constraints [duplicate]基于约束整理值[重复]
【发布时间】:2013-05-05 05:33:17
【问题描述】:

我有一个矩阵

       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

是否可以在没有循环的情况下做到这一点?

谢谢

【问题讨论】:

  • 查看accumarray
  • 谢谢丹!在我问之前我没有找到那个问题。

标签: matlab merge


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 2023-03-12
    相关资源
    最近更新 更多