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 ]

Posts: 8,982
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]

© The Math Forum 1994-2015. All Rights Reserved.