Нижний и верхний индекс в отсортированном векторе - PullRequest
0 голосов
/ 13 июля 2020

У меня есть вектор со следующими отметками времени:

1521753105.031429052352905
1521753105.081429004669189
1521753105.131428956985474
1521753105.181428909301758
1521753105.231429100036621
1521753105.281429052352905
1521753105.331429004669189
1521753105.381428956985474
1521753105.431428909301758
1521753105.481429100036621
1521753105.531429052352905
1521753105.581429004669189

Текущее время:

1521753105.231428861618042

, которое находится между 4-м и 5-м значениями.

Ценности лежат между двумя значениями

Как определить нижний и верхний индекс к текущему времени?

Ответы [ 2 ]

3 голосов
/ 13 июля 2020

Аналогично решению Андер :

find первая временная метка больше, чем ваша текущая. Найдите последнюю меньшую временную метку, вычтя единицу.

bracket = find(A>v,1) + [-1, 0];
2 голосов
/ 13 июля 2020

Трюк с одним лайнером!

A=%[your numbers]
v=%the value to find its position

braket=find(sort([A,v])==v)+[-1 0]

Предполагается, что A был отсортирован изначально, конечно

...