![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/237290/image.png)
Anomalous histogram for small argument
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Gordon Edwards
el 6 de Sept. de 2019
Comentada: Gordon Edwards
el 7 de Sept. de 2019
Running the following code from the command line with c = 1e-15 or greater leads to a normal histogram
c = 1e-15; figure; histogram(c * rand(100,1))
![histogram1.JPG](https://www.mathworks.com/matlabcentral/answers/uploaded_files/237214/histogram1.jpeg)
Running the following code with c = 1e-16 or less leads to an incorrect histogram
c = 1e-16; figure; histogram(c * rand(100,1))
![histogram2.JPG](https://www.mathworks.com/matlabcentral/answers/uploaded_files/237215/histogram2.jpeg)
The problem appears also in apps when the histogram function is invoked.
Is this a bug?
Gordon
0 comentarios
Respuesta aceptada
Bruno Luong
el 7 de Sept. de 2019
Editada: Bruno Luong
el 7 de Sept. de 2019
Yes it is a BUG. I chase back and in the file
C:\Program Files\MATLAB\R2019a\toolbox\matlab\datafun\+matlab\+internal\+math\binpicker.m
line #20 (R2019a)
there is a test
if xrange > max(sqrt(eps(xscale)), realmin(class(xscale)))
To me the correct test should be (without sqrt)
if xrange > max(eps(xscale), realmin(class(xscale)))
Now if I change this line and rerun the code
c = 1e-16; figure; histogram(c * rand(100,1))
it produces correct plot
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/237290/image.png)
More seriously, the function binpicker is called by HISTCOUNT. So HISTCOUNT is also buggy. Not only plotting but calculation might be wrong.
1 comentario
Más respuestas (1)
Jackson Burns
el 7 de Sept. de 2019
Here's a similar question asked a few years ago which was never really solved either. This comment may be your best approach, but I would reccomend just bringing the values to unity with something like this:
c = 1E-16;
figure
mydata = c * rand(100,1);
histogram(mydata./max(mydata))
You could then modify the xticklabels to match whatever the original values were.
0 comentarios
Ver también
Categorías
Más información sobre Data Distribution Plots en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!