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

Home » Public Forums » archive » Re: How to get matching elements of array efficiently
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: How to get matching elements of array efficiently [message #69928 is a reply to message #69926] Wed, 24 February 2010 00:54 Go to previous messageGo to previous message
rogass is currently offline  rogass
Messages: 200
Registered: April 2008
Senior Member
On 23 Feb., 21:11, JJ <j...@cornell.edu> wrote:
> Hi All,
>
> I'm looking for an efficient (non-loop) solution to this problem.  I
> have two arrays A, B.  The elements of A are not necessarily unique,
> nor is A necessarily sorted.  I'd like to find all the indices in A
> that match values that occur in B.
>
> For example, if A = [7,1,8,7,8], B = [7,8], the result should be
> [0,2,3,4].
>
> A and B can have many (order millions) of unique values, so I'd rather
> avoid a loop if I can.
>
> Is there any way to do this efficiently?
>
> Thanks.
>
> -JJ

Hi,
I don't know the other solutions, but maybe this one will also work
for you :)

wh = where(total(((c=abs(rebin(transpose(a[*]),$
((nb=n_elements(b))),((na=n_elements(a))),/sample) - $
rebin(b[*],nb,na,/sample)))) eq 0,1))

Cheers

CR
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Intersection of polyline curve and polygon in 3D
Next Topic: Deconvolving a set of points

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

Current Time: Fri Oct 10 14:49:52 PDT 2025

Total time taken to generate the page: 0.17468 seconds