Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: match matrix to closest values
Replies: 5   Last Post: Jun 16, 2013 3:34 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Y

Posts: 2
Registered: 6/9/13
Re: match matrix to closest values
Posted: Jun 15, 2013 6:46 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

"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);



Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.