Re: Entry comparison between two arrays [message #60514 is a reply to message #60507] |
Tue, 20 May 2008 09:34   |
Jean H.
Messages: 472 Registered: July 2006
|
Senior Member |
|
|
crazywhiteboy311@gmail.com wrote:
> Hello everyone,
>
> I'm new to IDL (started using last week for a summer research
> position), and have been working on a problem of comparing two
> structures of arrays. The concept is that each of the structures
> contain arrays of a year fraction, a day-of-year fraction, and other
> data that I need compare. However, to do this comparison I need to
> make sure both sets of data are corresponding to the same time (within
> a range of error). My initial thought was to do this in a loop (only
> have previous experience programming with Java and C doing small data
> sets) that records the array indexes of corresponding pairs, and use
> those indexes to build an another array that contains the two sets of
> data from the two structures of arrays side by side in an array. This
> idea works fine, but when I start trying to accomplish it on two
> arrays of roughly 1 million entries each, it spikes up to taking my
> whole summer to run. So what I'm looking for is how I might do this in
> array based calculations in IDL. If anyone can give me an idea, or
> point me in the direction of a good tool to use, I'd appreciate it
> much. Thanks
Hi,
I guess you would have to use histograms.
Read (several times) the famous histogram tutorial
http://www.dfanning.com/tips/histogram_tutorial.html and look, about
mid page, at "Problem: Find the value intersection of two vectors,
a.k.a. which values are present in both a and b?"
Basically, you will want to do the same, but use a bin size equals to
your error threshold (or twice, depending how you conceive it). Don't
use "omin" in the first histogram, but min=min(data) - (1.0/2)*binSize,
so each histogram bin will have the corresponding data + or - the error.
You can play with the reverse index if you need the position, not the
value, of the corresponding entries.
Jean
|
|
|