Any way for matlab to sum an array according to specified bins NOT by for iteration? Best if there is buildin function for this

Viewed 54

For example, if

A = [7,8,1,1,2,2,2]; % the bins (or subscripts)
B = [2,1,1,1,1,1,2]; % the array

then the desired function "binsum" has two outputs, one is the bins, and the other is the sum. It is just adding values in B according to subscripts in A. For example, for 2, the sum is 1 + 1 + 2 = 4, for 1 it is 1 + 1 = 2.

[bins, sums] = binsum(A,B);

bins = [1,2,7,8]
sums = [2,4,2,1]

The elements in "bins" need not be ordered but must correspond to elements in "sums". This can surely be done by "for" iterations, but "for" iteration is not desired, because there is a performance concern. It is best if there is a build in function for this.

Thanks a lot!

3 Answers
Related