Binning data from two columns using one column as category for second column
Show older comments
Hi all,
So I am trying to do this via loops but i am not getting anywhere and i am sure that there is a quicker way to solve this problem. I have two columns of data, Radius and Volume, and I wanted to bin the Volume according to the values of the Radius. So for example, if R is the first column of values and V is the second column
A = [ 1 8
2 7
3 9
4 3
5 4
6 6
7 5
8 6
9 6
10 6
11 3
12 2
13 1
14 1
15 3
16 4
]
will be binned as
B = [ 5 31
10 29
15 10
]
So the bin labels are the values of the Radius, and the second column contains the sum of the Volumes in that Radius range.
Many thanks
3 Comments
Star Strider
on 3 Jun 2016
Please explain in some detail how you get ‘B’ out of ‘A’.
Jos (10584)
on 3 Jun 2016
which Radius range?
Sohrab Daemi
on 3 Jun 2016
Answers (1)
Jos (10584)
on 3 Jun 2016
[~,i] = histc(X,edges)
Result = accumarray(Y,i,[max(i) 1],@sum)
2 Comments
Sohrab Daemi
on 3 Jun 2016
Edited: Sohrab Daemi
on 3 Jun 2016
Jos (10584)
on 4 Jun 2016
Almost correct! See the help of HISTC about the meaning of the second input argument ( edges).
Categories
Find more on Histograms in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!