Matlab:矩阵中第2列的总和,用于第1列中的相等值

时间:2014-07-20 15:40:40

标签: matrix sum multiple-columns

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

  
      
  1. 专栏:[1 1 1 2 2 3 3 3 3 4 5 5]
  2.   
  3. 栏目:[3 5 8 2 6 4 0 6 1 0 2 6]
  4.   

现在我希望第1列中的值1为第2列中的3,5和8的总和,同样来自第1列的2,3和所以。 像这样举例如:

  

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

我感谢任何建议!

1 个答案:

答案 0 :(得分:0)

值相等时对所有值求和:

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