How to speed up this code?

1 visualizzazione (ultimi 30 giorni)
K E
K E il 13 Nov 2014
Commentato: K E il 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.

Risposta accettata

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

Accedi per commentare.

Più risposte (0)

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by