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

Home » Public Forums » archive » Re: IDL-way to use WHERE result as subscripting indices without having to do IF count
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: IDL-way to use WHERE result as subscripting indices without having to do IF count [message #76184 is a reply to message #76183] Fri, 20 May 2011 06:19 Go to previous messageGo to previous message
David Fanning is currently offline  David Fanning
Messages: 11724
Registered: August 2001
Senior Member
Robin Wilson writes:

> I'm sure this has been discussed before, but I can't find the
> discussion. I have a lot of code that looks like the following:
>
> Array[WHERE(Input LT 5)] = 2
> Array[WHERE(Input GT 7 AND OtherArray LT 9) = 6
> etc...
>
> I know I shouldn't be using WHERE like that without checking the count
> of items returned, as it will crash if there are no values in Input less
> than 5. My question is: is there an IDL-way to do this, without putting
> in loads of IF count NE 0 statements above each of the assignemnts?
> That'll make the code a lot longer, a lot messier etc.
>
> Any ideas?

Bite the bullet. You'll be glad you did. :-)

Or, if in IDL 8, set the NULL keyword to the Where
function:

IDL> a=[1,2]
IDL> help, where(a lt 0)
<Expression> LONG = -1
IDL> help, where(a lt 0, /null)
<Expression> UNDEFINED = !NULL
IDL> c=a[where(a lt 0, /NULL)]

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
Previous Topic: H5F_OPEN/H5F_CLOSE apparent memory leak
Next Topic: A Sign You're Getting Old

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

Current Time: Fri Oct 10 13:37:55 PDT 2025

Total time taken to generate the page: 1.20050 seconds