comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: HISTOGRAM, binsize, and max
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: HISTOGRAM, binsize, and max [message #76092] Wed, 18 May 2011 11:41 Go to previous message
pgrigis is currently offline  pgrigis
Messages: 436
Registered: September 2007
Senior Member
On May 18, 2:33 pm, Paolo <pgri...@gmail.com> wrote:
> On May 18, 1:08 pm, andry <andry_will...@hotmail.com> wrote:
>
>> Hi Paolo,
>
>> I guess this has to do with the fact that different computers don't
>> behave the same way. What OS and which version of IDL are you with?
>
>> Mine is actually a
>> { x86 linux unix linux 8.0 Jun 18 2010      32      64}
>
> Maybe you have conversion to doubles enabled by default?
>
> With floats you always get 7+1 bins:
>
> IDL> print,1.4/0.2,format='(f20.15)'
>    7.000000000000000
> IDL> print,140.0/20.0,format='(f20.15)'
>    7.000000000000000
>
> With doubles you will get different numbers of bins:
>
> IDL> print,1.4d/0.2d,format='(f20.15)'
>    6.999999999999999
> IDL> print,140d/20d,format='(f20.15)'
>    7.000000000000000
>
> Ciao,
> Paolo
>
>
>
>
>
>
>
>
>
>>> When I try that I always get 8 bins no matter what.
>>> I don't see how you could get 7 bins in that situation...
>
>>> IDL> hist_spd= HISTOGRAM(randomn(seed,10)*200,binsize= .
>>> 20,min=0.,max=1.40) & help,hist_spd
>>> HIST_SPD        LONG      = Array[8]
>
>>> IDL> hist_spd= HISTOGRAM(randomn(seed,10)*200,binsize=
>>> 20.0,min=0.,max=140.0) & help,hist_spd
>>> HIST_SPD        LONG      = Array[8]


to clarify:

IDL> hist_spd= HISTOGRAM(float(randomn(seed,
10)*200),binsize=20.0,min=0.0,max=140.0) & help,hist_spd
HIST_SPD LONG = Array[8]
IDL> hist_spd= HISTOGRAM(double(randomn(seed,
10)*200),binsize=20d,min=0d,max=140d) & help,hist_spd
HIST_SPD LONG = Array[8]
IDL> hist_spd= HISTOGRAM(float(randomn(seed,10)*200),binsize=.
20,min=0.,max=1.40) & help,hist_spd
HIST_SPD LONG = Array[8]
IDL> hist_spd= HISTOGRAM(double(randomn(seed,10)*200),binsize=.
20d,min=0.d,max=1.40d) & help,hist_spd
HIST_SPD LONG = Array[7]

Float is consistent, double not.
The reason seems to be the different value you get when dividing
max-min by binsize, caused by the well known issues with floating
representation of numbers.



Ciao,
Paolo

>
>>> Ciao,
>>> Paolo
>
>>>> Cheers,
>
>>>> David
>
>>>> --
>>>> David Fanning, Ph.D.
>>>> Fanning Software Consulting, Inc.
>>>> Coyote's Guide to IDL Programming:http://www.idlcoyote.com/
>>>> Sepore ma de ni thui. ("Perhaps thou speakest truth.")
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: histogram produces extra bin in 64-bit IDL 8.0
Next Topic: Reducing the number of vertices in an isosurface...

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 13:34:16 PDT 2025

Total time taken to generate the page: 0.00452 seconds