Even binned histogram to uneven bins?

4 次查看(过去 30 天)
Hi all,
I have a csv file consisting of 256 bins each of 2mm width and I need to convert to uneven bins. 32 bins of 2mm width, 48 of 4mm width and 4 of 8mm depth. I would prefer not to use the bin edges as reference but rather the mid-point of the bins for reference but, if I need, I'll use the bin edges.
Can this be done using Matlab?
Apologies for not replying to my earlier posts.
Regards
Tim

回答(5 个)

Star Strider
Star Strider 2020-9-18
If you are using the histogram function, you can specify the bind widths using the edges option. See Specify Bin Edges of Histogram for a relevant example. Remeber that there is one more edge than the number of bins, so each bin must be defined as two specific bin edges. The histcounts function works similarly, if you are using that instead.
  5 个评论
Tim Fulcher
Tim Fulcher 2020-9-19
Thanks SS. I'll try that when I get the time (see post below. Bastard employers want their pound of flesh. Nah, they're good and support me but I still need to do real work).
T

请先登录,再进行评论。


Steven Lord
Steven Lord 2020-9-18
Let's make some sample data.
x = randi(255, 1, 1e5);
Use bin edges that are the squares of the integers between 1 and 16. Each bin but the last contains its left edge but not its right (this is the default behavior), the last contains both its edges.
h = histogram(x, (1:16).^2);
To make it easier to see that the bin edges are at those specific values, set the ticks.
xticks((1:16).^2)
Check that MATLAB reports that the bins are not of uniform width.
h.BinWidth

Tim Fulcher
Tim Fulcher 2020-9-19
编辑:Tim Fulcher 2020-9-19
I tried the histogram option you guys suggested. It's better but not quite there.
Two attachments: what it should look like and what histogram is throwing out. The latter looks like it's taking the average of the data for those bin sizes and putting that average into all the bins of that size. I'll have a look at the data in the next few days (sorry, I'm a part time PhD student and have to earn my crust to pay the uni fees) and see whether that is the case.
And yes, if you're interested, it is a Bragg Peak.
T

Tim Fulcher
Tim Fulcher 2020-9-19
编辑:Tim Fulcher 2020-9-19
Here's the result from histogram:

Tim Fulcher
Tim Fulcher 2020-9-21
编辑:Tim Fulcher 2020-9-21
Hi guys,
eventually I went for hard coded. Tedious and inflexible but I think, in this case it might be the best solution.
Thanks very much for your help.
T

类别

Help CenterFile Exchange 中查找有关 Data Distribution Plots 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by