Issue with moving from hist() to histogram(). Different values?
조회 수: 2 (최근 30일)
이전 댓글 표시
Hi,
I am changing this code
[bincount,binpos] = hist(data,min(50,numel(data)/5));
to this, as MATLAB recomends using histogram.
h = histogram(data,min(50,numel(data)/5));
bincount2 = h.BinCounts;
edges = h.BinEdges;
width = h.BinWidth;
binpos2 = edges(1:end-1) + width/2;
The output is
Which is fine. However, I have noticed that from values 1 to 25 bincount and bincount2 have different values. The values are the same from 26 to 50.
It is the exact same issue with binpos and binpos2.
Is there any reason or solution for this?
Andrew
댓글 수: 0
답변 (1개)
Steven Lord
2022년 9월 30일
As stated on this documentation page the hist function operates with bin centers while histogram operates with bin edges. If you compare binpos and edges they're likely not the same. See the last section on the page for a discussion of how to convert bin centers to bin edges.
댓글 수: 2
Steven Lord
2022년 9월 30일
The data is exactly the same, but are the bins? In the two examples below I bin the same data. In the first case the first bin is [1, 2) and so only those values in x that are equal to 1 fall into the first bin.
x = randi(2, 1, 10)
[counts1, bins1] = histcounts(x, [1 2 3])
In the second case the first bin is slightly larger [1, 2.001) and so all the elements in x (which are either 1 or 2) fall into the first bin.
[counts2, bins1] = histcounts(x, [1 2.001 3])
참고 항목
카테고리
Help Center 및 File Exchange에서 Histograms에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!