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 ]
dpb

Posts: 8,163
Registered: 6/7/07
Re: match matrix to closest values
Posted: Jun 10, 2013 1:57 PM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

On 6/9/2013 5:50 PM, Y wrote:
> Here's a function I wrote. It creates a matrix with the same dimensions
> as 'needle', placing in each element the closest value from 'haystack':
>
> function [val] = closest(haystack, needle)
> [~, i] = min(abs( ...
> repmat(reshape(haystack,numel(haystack),1),1,numel(needle)) - ...
> repmat(reshape(needle,1,numel(needle)),numel(haystack),1) ...
> ), [], 1);
> val = reshape(haystack(i), size(needle));
> end
>
> I'd appreciate suggestions & improvements.


You can simply use (:) for the two reshape() inside the repmat() calls

I'd guess could be written w/ bsxfun() but didn't try it...not that it
would likely perform any better...

--



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.