【问题标题】:Matlab: Sum of 2nd column in matrix for equal values in 1st columnMatlab:矩阵中第二列的总和,第一列中的值相等
【发布时间】:2014-07-20 15:40:40
【问题描述】:

我想对我的第二列中在第一列中具有相同值的所有值求和。 所以我的矩阵看起来可能是这样的:

  1. 列:[1 1 1 2 2 3 3 3 3 4 5 5]
  2. 列:[3 5 8 2 6 4 0 6 1 0 2 6]

现在我希望第一列中的值 1 在第二列中具有 3、5 和 8 的总和,对于第一列中的 2、3 等也是如此。 比如这样:

[1 2 3 4 5], [16 8 11 0 8]

感谢您的任何建议!

【问题讨论】:

    标签: matrix sum multiple-columns


    【解决方案1】:

    当值相等时对所有值求和:

    Just to init :
    a = [1 1 1 2 2 3 3 3 3 4 5 5 ; 3 5 8 2 6 4 0 6 1 0 2 6];
    a = a.';
    

    我们走吧:

    n=0
    for i=1:size(a,1)
       if a(i,1) == a(i,2)
          n = n + a(i,1) 
       end 
    end
    n
    

    第二个问题:

    mat=0
    for j = 1:max(a(:,1))
        n=0
            for i=1:size(a,1)
               if j == a(i,1)
                  n = n + a(i,2) 
               end
            end
        mat(j,1) = j
        mat(j,2) = n
    end
    mat
    

    结果:

    mat =
    
         1    16
         2     8
         3    11
         4     0
         5     8
    

    【讨论】:

      猜你喜欢
      • 2018-06-13
      • 1970-01-01
      • 1970-01-01
      • 2018-08-10
      • 2018-11-02
      • 1970-01-01
      • 1970-01-01
      • 2020-09-20
      • 1970-01-01
      相关资源
      最近更新 更多