Histogram gives different BinCounts while appending BinEdges
10 views (last 30 days)
Show older comments
B Yin on 29 Apr 2018
Answered: Philip Borghesani on 2 May 2018
I try to shrink the BinEdges in the histogram plot while keeping the remaining BinEdges the same as before. But histogram gives different BinCounts. This should not happen.
I upload my example. Please take a look. Any comments are highly appreciated. Thanks!
Huina Mao on 29 Apr 2018
If you use the old function ‘hist’, the same results come. The new function histogram might have some uncertainty. Need MathWorks double check.
Star Strider on 29 Apr 2018
You have different numbers of bins in each subplot. In subplot(3,1,1), you define 61 bins, in subplot(3,1,2), 41, and in subplot(3,1,3), 31. Different numbers of bins are going to produce different bin counts.
You can determine this easily enough by calculating them and then looking at the lengths of each vector:
E1 = (13.83: 0.0005 :13.86);
E2 = (13.83: 0.0005 :13.85);
E3 = (13.83: 0.0005 :13.845);
Philip Borghesani on 2 May 2018
The differences in histograms are due to slightly different algorithms used in the two functions. Hist uses the input points as centers for the bins and histogram uses them as edges. This is documented in each functions documentation.
Your code is forcing the histogram routine to compare floating point values at logical equality this will eventually burn you in every situation.
A much better way to produce a histogram for your data is to offset the input bins by 1/2 your minimum quantization value.
h3=histogram( x, (13.83: 0.0005 :13.845) +0.00005);
In addition your instrument appears to have some bias toward certain input values examine:
h3=histogram( x, (13.835: 0.0001 :13.845) +0.00005);
This is magnifying the effect of the comparison errors in the output histograms.
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!