How to bin for scatter plot from two data series?

1 view (last 30 days)
Sir i have two data series say
a b
25.36737061 -27.47956892
20.54391479 -23.68162398
16.76391602 -16.65254461
9.47177124 -19.20600915
16.25158691 -18.56570783
4.462646484 -14.39363913
7.785919189 -14.98048449
12.27481079 -18.49125231
4.851806641 -19.91135093
2.111236572 -5.049334665
-1.457702637 -6.51219601
1.85055542 -1.299793246
and i want to plot for a=0-5,6-10,11-15,16-20 with the corresponding average and standard deviation of b. Please help me with a easy way since the series are very large?

Accepted Answer

Star Strider
Star Strider on 15 Sep 2015
Edited: Walter Roberson on 15 Sep 2015
This seems to work:
m = [25.36737061 -27.47956892
20.54391479 -23.68162398
16.76391602 -16.65254461
9.47177124 -19.20600915
16.25158691 -18.56570783
4.462646484 -14.39363913
7.785919189 -14.98048449
12.27481079 -18.49125231
4.851806641 -19.91135093
2.111236572 -5.049334665
-1.457702637 -6.51219601
1.85055542 -1.299793246];
binedge = 0:5:20; % Define Bin Edges
[acount, idx] = histc(m(:,1), binedge); % Bin ‘a’, Return Index Vector
meanb = accumarray(idx+1, m(idx+1,2), [], @mean); % Get Mean Of Corresponding ‘b’
figure(1)
bar(binedge, acount, 'histc')
grid
One of the bin edge values is zero, and that doesn’t work as an index for accumarray, so I added 1 to the index values. That doesn’t affect the calculation.
  4 Comments
Star Strider
Star Strider on 16 Sep 2015
I didn’t specifically test the code for the standard deviation, but it should work as you wrote it, providing there are no NaN values in your data.
Star Strider
Star Strider on 16 Sep 2015
If my Answer solved your problem, please Accept it.

Sign in to comment.

More Answers (0)

Categories

Find more on Data Distribution Plots 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!