How to speed up this code?

2 Ansichten (letzte 30 Tage)
K E
K E am 13 Nov. 2014
Kommentiert: K E am 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.

Akzeptierte Antwort

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by