Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
NCTM or The Math Forum.


Y
Posts:
2
Registered:
6/9/13


Re: match matrix to closest values
Posted:
Jun 15, 2013 6:46 AM


"Bruno Luong" <b.luong@fogale.findmycountry> wrote in message <kp594s$rpl$1@newscl01ah.mathworks.com>... > dpb <none@non.net> wrote in message <kp5433$adc$1@speranza.aioe.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:
[~,lambda_indices_hkl] = closest(lambdas, lambdas_ewald_hkl); lambda_intensities_hkl = spectrum_intensity(lambda_indices_hkl);



