Улучшения скорости для отсортированного вектора в MATLAB - PullRequest
4 голосов
/ 12 октября 2011

Какой самый быстрый способ поиска индекса значения в отсортированном векторе в MATLAB? То есть, есть ли быстрый find(vector == myNumber, 1, 'first'), когда вектор сортируется?

У меня есть большая матрица (200 000 x 4) местоположений с уникальным целочисленным идентификатором, записанным в первом столбце. Я хочу найти правильное местоположение известного идентификатора, но тысячи поисков могут занять у меня немного времени.

Ответы [ 3 ]

4 голосов
/ 12 октября 2011

Если вы используете ismembc2, вывод loc должен дать вам то, что вам нужно. Смотрите это для более подробной информации:

http://www.mathworks.com/support/solutions/en/data/1-9NIE1N/index.html?product=ML&solution=1-9NIE1N

3 голосов
/ 12 октября 2011

На FEX представлен ряд документов: http://www.mathworks.com/matlabcentral/fileexchange/?term=binary+search+vector

0 голосов
/ 12 октября 2011

Я не знаю, быстрее ли это, но вы можете попробовать

result=vector(vector(:,1)==myNumber,:)

result будет содержать строку из 4 элементов, для которой вектор first column == myNumber

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...