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

Home » Public Forums » archive » where, or, and loops. There has to be a better way.
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: where, or, and loops. There has to be a better way. [message #83564 is a reply to message #83474] Fri, 08 March 2013 15:55 Go to previous messageGo to previous message
Jeremy Bailin is currently offline  Jeremy Bailin
Messages: 618
Registered: April 2008
Senior Member
On 3/8/13 5:47 PM, AB wrote:
> Please see the below example to demonstrate my problem:
>
> --------------------------------
>
>
> ; This is a large floating point array of river basins
> huc = fltarr(4800,4800)
>
> ; IDs of the basins I want to extract
> NEW = [1102,1103,1104,1105]
>
> ; Find where the basins are
> pos = where(huc eq NEW[0] or $ ; IS THIS THE ONLY WAY TO FIND THE VALUES IN THE LARGER ARRAY??
> huc eq NEW[1] or $
> huc eq NEW[2] or $
> huc eq NEW[3])
>
> ; Create new array and insert basins
> key = intarr(4800,4800)
>
> key(pos) = 1
> ---------------------------------
>
> THe issue here is, what happens when the 'NEW' variable has 300 values in it? Do I have to go through 300 iterations of:
>
> pos = where(huc eq NEW[1] or $
> ............... or $
> huc eq NEW[299])
>
>
> I hope someone has found a way around this.
>
> Thanks for any ideas you can give!!!
> Annie
>
>
>
>

I like the following paradigm for these. It assumes that new is sorted -
you'll need to pre-sort it otherwise.

pos = WHERE(new[VALUE_LOCATE(new, huc)] eq huc)

-Jeremy.
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: Re: Majority Filter
Next Topic: Sorting a matrix

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

Current Time: Wed Oct 08 20:04:00 PDT 2025

Total time taken to generate the page: 0.00473 seconds