How to speed up this code?

2 vues (au cours des 30 derniers jours)
K E
K E le 13 Nov 2014
Commenté : K E le 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.

Réponse acceptée

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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by