Re: explain THIS one [message #58533 is a reply to message #58532] |
Mon, 04 February 2008 06:51   |
Spon
Messages: 178 Registered: September 2007
|
Senior Member |
|
|
On Feb 4, 2:31 pm, cmanc...@ufl.edu wrote:
> On Feb 4, 9:29 am, cmanc...@ufl.edu wrote:
>
>
>
>> I'm having an error in my code and I stop it to check out what is
>> going on. Here's the three relevant lines of code:
>
>> minmag = min(sims[mag,*],max=maxmag)
>> nbins = (maxmag-minmag)/magbinsize
>> magres = fltarr(3*nfilters,nbins)
>
>> Here's some commands I type into a command line to investigate my
>> issues:
>
>> IDL> help,nbins
>> NBINS FLOAT = 7.00000
>> IDL> help,magres
>> MAGRES FLOAT = Array[6, 6]
>
>> Anyone see a problem here? nbins is a float of size 7.0, and yet
>> magres ends up with 6 rows!!!! To add to the fun I then type the
>> following:
>
>> IDL> nbins = 7.0
>> IDL> magres = fltarr(3*nfilters,nbins)
>> IDL> help,magres
>> MAGRES FLOAT = Array[6, 7]
>
>> To summarize, my array is created with the wrong dimensions, so I re-
>> assign one of the variables with the exact same value that it had
>> before, recreate my array, and it works! ?????? Looks like a bug to
>> me...
>
> And in case anyone thinks this might be part of the problem:
>
> IDL> help,nbins
> NBINS FLOAT = 7.00000
> IDL> help,nfilters
> NFILTERS LONG = 2
> IDL> magres = fltarr(3*nfilters,long(nbins))
> IDL> help,magres
> MAGRES FLOAT = Array[6, 6]
help,fltarr(6,6.99)
<Expression> FLOAT = Array[6, 6]
nbins = (maxmag-minmag)/magbinsize
If this ever returns a value just under 7.00000 it'll always be
rounded down when it's converted . I suspect this is what's happening
to you.
To test it, you could try:
magres = fltarr(3*nfilters,round(nbins))
Does this fix your problem?
Chris
|
|
|