"Bruno Luong" <email@example.com> wrote in message <firstname.lastname@example.org>... > dpb <email@example.com> wrote in message <firstname.lastname@example.org>... > > On 6/9/2013 5:50 PM, Y wrote: > > > > > I'd guess could be written w/ bsxfun() but didn't try it...not that it > > would likely perform any better... > > bsxfun is much safer in term of memory consumption. It is always preferable method. > > Back to the question, there is no need to compare all the pairs. This should do: > > h = unique(haystack(:)) > val = interp1(h,h,needle,'nearest') > > % Bruno
That's a good way to use interp1 I wasn't aware of, thanks. Do you have a suggestion on how to get back the indices back from interp1? Or is the best one find(ismember(h,val))?
My application has lambdas_ewald_hkl (3D matrix), lambdas (vector) and spectrum_intensity (vector), and needs the spectrum_intensity matching (in indices) spectrum_intensity closest to each value in lambdas. That is, I now use: