data = [1 1.2 1.3 1.5 1.8]
b = 1.23
find(abs(data-b)==min(abs(data-b)))
Ответ 5
Этот метод обобщает Doubt-ответ на случай, когда в b есть несколько элементов, которые вы ищете:
ind=knnsearch(data',b)
c=data(ind)
который возвращает индекс (или массив индексов), ind, ближайшего элемента (или элементов) в data к элементам, указанным в b.
Обратите внимание, что данные транспонируются, потому что набор, который нужно искать, должен быть вектором столбца. Если бы было несколько элементов, то он также должен быть вектором столбца.
Кроме того, этот метод может быть обобщен, чтобы дать 2, 3, 4... ближайшим соседям (см. документацию).
Он также обобщает случай, когда данные являются более крупными (если d размеры, то test и b будут иметь столбцы d).