【问题标题】:Matlab: Sum of 2nd column in matrix for equal values in 1st columnMatlab:矩阵中第二列的总和,第一列中的值相等
【发布时间】:2014-07-20 15:40:40
【问题描述】:
我想对我的第二列中在第一列中具有相同值的所有值求和。
所以我的矩阵看起来可能是这样的:
- 列:[1 1 1 2 2 3 3 3 3 4 5 5]
- 列:[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