MATLAB Answers


Binning x and y

さんによって質問されました 2014 年 8 月 5 日
最新アクティビティ laura9510
さんによって コメントされました 2017 年 1 月 31 日
Hi all,
Assuming that I have the follwing data:
x=[0, 2, 2.4, 2.8, 3.4, 3.9, 4, 4,7, 5.3, 5.8, 6, 6.4......]; % unit of x is cm
y=[100, 50, 30, 25, 20, 16, 14, 13, 12, 11, 10.5, 10, ....]; % Intensity
My question is the following:
I can plot y vs. x but I Would like, for instance, to bin x with a constant bin width (constant distance). Let say bin width of 2 (constant distance 2 cm). Therefore I would like to obtain a new x called xn:
xn=[0, 2, 4, 6,..]
and yn should contain the sum of the data which are conatained in in each interval:
interval1=[0,2] contains 100+50=150
interval2=]2,4] contains 50 + 30 + 25 + 20 + 16 + 14 =155
interval3=]4,6] contains 56.5
yn=[150, 155, 56.5]
and then I would like to plot yn versu xn
your hepl is highly welcome....

  0 件のコメント

サインイン to comment.

1 件の回答

the cyclist
回答者: the cyclist
2014 年 8 月 5 日

You should be able to do this with the hist() or histc() command. You can specify your bin locations, and then get the index for which x values went into each bin. Then use that index to sum your y values.

  5 件のコメント

2014 年 8 月 26 日
Hi ,
Thanks. My data points are symmetric (Fig.1) but when I bin these data using the previous code I obtain another data which are not perfectly symmetric (Fig. 2). Do you know why ? I kindly appreciate your help.
the cyclist
2014 年 8 月 26 日
I suppose it is either
  • the way the bin edges are defined, they are not centered around zero, OR
  • the way MATLAB treats values that are exactly on the bin edge, it consistently puts them to one side, leading to asymmetry.
2017 年 1 月 31 日
Jumping in years later but if I was looking to average within bins, is using accumarray possible in conjunction with another function?

サインイン to comment.

Translated by