Even binned histogram to uneven bins?

8 Ansichten (letzte 30 Tage)
Tim Fulcher
Tim Fulcher am 18 Sep. 2020
Kommentiert: Star Strider am 21 Sep. 2020
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

Antworten (5)

Star Strider
Star Strider am 18 Sep. 2020
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 Kommentare
Tim Fulcher
Tim Fulcher am 19 Sep. 2020
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
Star Strider
Star Strider am 19 Sep. 2020
My pleasure!

Melden Sie sich an, um zu kommentieren.


Steven Lord
Steven Lord am 18 Sep. 2020
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
  1 Kommentar
Tim Fulcher
Tim Fulcher am 18 Sep. 2020
Thanks Steven, as per the previous reply I'll give that a go.

Melden Sie sich an, um zu kommentieren.


Tim Fulcher
Tim Fulcher am 19 Sep. 2020
Bearbeitet: Tim Fulcher am 19 Sep. 2020
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 am 19 Sep. 2020
Bearbeitet: Tim Fulcher am 19 Sep. 2020
Here's the result from histogram:

Tim Fulcher
Tim Fulcher am 21 Sep. 2020
Bearbeitet: Tim Fulcher am 21 Sep. 2020
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
  3 Kommentare
Tim Fulcher
Tim Fulcher am 21 Sep. 2020
Thanks SS. And again for your help.
T
Star Strider
Star Strider am 21 Sep. 2020
My pleasure!

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by