[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Finding values in an array



Craig,
Thanks. value_locate is a miracle. I was using an old handi-guide that
didn't have this function listed, and since I am new to IDL, didn't know
about it. It works very well for what I am doing and is about a zillion
times faster than the terrible routine I wrote.
I really appreciate this group. Hope I don't wear out my welcome by asking
all the time and never feeling like I can contribute.
Bob

> From: Craig Markwardt <craigmnet@cow.physics.wisc.edu>
> Organization: U. Wisc. Madison Physics -- Compact Objects
> Reply-To: craigmnet@cow.physics.wisc.edu
> Newsgroups: comp.lang.idl-pvwave
> Date: 25 Jun 2001 01:18:59 -0500
> Subject: Re: Finding values in an array
> 
> 
> Bob Fugate <rqfugate@mindspring.com> writes:
> 
>> I have a vector containing a very, very large number of long integer values.
>> 
>> I want to compare the value of each element in the vector to the values of
>> the elements in the first column of a two column array until  there is a
>> match, and then extract the corresponding number in the second column (e.g.
>> by using WHERE) of the array.
>> 
>> Does anyone know a way to do this without using a loop?  I realise that
>> organizing the searched array as two rows may speed this up, however, I am
>> trying to avoid using a loop. The numbers in the vector vary randomly (and
>> it is important to preserve the original order) but the numbers in the first
>> column of the array are sorted and increase monotonically (if that matters).
>> 
>> I am new to IDL, so will greatly appreciate any suggestions.
> 
> If you can guarantee that there won't be any "misses", ie all
> possibilities are in your second table, then VALUE_LOCATE is your
> friend.  This is new in IDL 5.3, but presumably you have at least this
> version.  If not, then see my web page for a drop-in substitute. :-)
> 
> You are basically done then!
> 
> wh = value_locate(col1, vector)
> y = col2(wh)
> 
> Cogitate on that for awhile and I think you will be satisfied.
> Good luck,
> Craig
> 
> Web page:  http://cow.physics.wisc.edu/~craigm/idl/idl.html  (Main listing)
> 
> -- 
> --------------------------------------------------------------------------
> Craig B. Markwardt, Ph.D.         EMAIL:    craigmnet@cow.physics.wisc.edu
> Astrophysics, IDL, Finance, Derivatives | Remove "net" for better response
> --------------------------------------------------------------------------