Re: Do you find this weird too? [message #56852 is a reply to message #56851] |
Mon, 19 November 2007 02:36  |
Allan Whiteford
Messages: 117 Registered: June 2006
|
Senior Member |
|
|
Lasse,
From "Using arrays as subscripts":
"Clipping
If an element of the subscript array is less than or equal to zero, the
first element of the subscripted array is selected. If an element of the
subscript array is greater than or equal to the last subscript in the
subscripted array, the last element is selected. "
this is what it's supposed to do although I've never found any kind of
use for it.
You can say scary things like:
a=findgen(50)
a[[100]]=7 ; not the same as a[100]=7
print,a[49]
for me, it throws away all the nice error checking you thought you had
for arrays overrunning.
Thanks,
Allan
Lasse Clausen wrote:
> Hi there,
>
> hope this gets through to you guys, now with all the spam and whatnot.
> Anywho, maybe this has come up before, here is some code
>
> aa = randomu(12L, 200, 100)
> ff = findgen(100)
> maxs = max(aa, maxind, dimension=2)
> print, maxind[0:10]
> help, ff[maxind[0:10]]
> plot, ff[maxind[0:10]]
>
> Now I find this weird, because maxind is an array of longs clearly
> bigger than the size of ff but IDL does not complain and plots
> something (btw not what I want but this is solved with array_indices).
> Is this something to do with the fact that maxind is a 1D
> representation of 2D array indices? I hope it is because otherwise why
> does IDL not fall over complaining that maxind[0], which on my machine
> is 19200, is bigger than the size of ff.
>
> Mhmm
>
> print, ff[maxind[0]]
>
> falls over
>
> print, ff[maxind[0:1]]
>
> doesn't.
>
> btw print, !version
> { x86 linux unix linux 6.2 Jun 20 2005 32 64}
>
> Cheers
> Lasse
|
|
|