Summing common elements of a matrix together
显示 更早的评论
Suppose I have a matrix
A = [1 1 2 2 3 3 3]
and
B = [1 2 3 4 5 6 7]
I want to create a matrix which sums the elements of B, by grouping them according to A, which means:
sum = [3 7 18]
which we got by: from B, we took 1, 2 because A matrix tells us that first two elements belong to first group, similarly 3, 4 for second and 5, 6, 7 for the third. Is there a non-loop way to do this?
采纳的回答
更多回答(1 个)
Onomitra Ghosh
2012-3-21
May be something like:
A = [1 1 2 2 3 3 3];
B = [1 2 3 4 5 6 7];
C = [];
for idx = unique(A)
C(end+1) = sum(B(A==idx));
end
C
2 个评论
Vinay Pandey
2012-3-21
Onomitra Ghosh
2012-3-22
I have not tried it; it might be difficult to get rid of the loop because it is not straightforward vectorization.
类别
在 帮助中心 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!