How to speed up this code?

1 view (last 30 days)
K E on 13 Nov 2014
Commented: K E on 14 Nov 2014
I would like fast code to find the index of the closest element of a vector to a scalar. Here's what I am doing now,
someVector = [1 3.5 5 7 9];
someScalar = 4;
iClosest = find(abs(someVector - someScalar) == min(abs(someVector - someScalar)));
The returned index is 2 since the 2nd element is closest to 4. A parent program spends a lot of time on this line according to the profiler. I'd like to know if it can be done faster or if there's a built-in solution.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 13 Nov 2014
[~,idx]=min(abs(someVector - someScalar))
  1 Comment
K E on 14 Nov 2014
Thanks, knew there was a more elegant way.

Sign in to comment.

More Answers (0)


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by