lower and upper index in sorted vector
1 次查看(过去 30 天)
显示 更早的评论
I have a vector with timestamps as following
1521753105.031429052352905
1521753105.081429004669189
1521753105.131428956985474
1521753105.181428909301758
1521753105.231429100036621
1521753105.281429052352905
1521753105.331429004669189
1521753105.381428956985474
1521753105.431428909301758
1521753105.481429100036621
1521753105.531429052352905
1521753105.581429004669189
How to determine the lower and upper index to the current time ?
which is in between the 4th and 5th values.
1521753105.231428861618042
采纳的回答
John D'Errico
2020-7-13
编辑:John D'Errico
2020-7-13
Please don't post pictures of numbers. That makes it more difficult to help you, to answer your question. Why would you make it more difficult for someone to help you?
Regardless, the answer in MATLAB is to use discretize. This will tell you the index of the interval that contains your given time stamp.
T = [ 1521753105.031429052352905
1521753105.081429004669189
1521753105.131428956985474
1521753105.181428909301758
1521753105.231429100036621
1521753105.281429052352905
1521753105.331429004669189
1521753105.381428956985474
1521753105.431428909301758
1521753105.481429100036621
1521753105.531429052352905
1521753105.581429004669189];
T0 = 1521753105.231428861618042;
ind = discretize(T0,T)
ind =
4
I'm not sure if you noticed the problem here, but it should point out something important.
T0 does not actually lies in the interval you show it to lie in. That is, ...231428... comes BEFORE ...231429....
So the timestamp you indicate lies between T(4) and T(5). discretize tells you that. Of course, for this simple problem, sum will tell you as much.
sum(T <= T0)
ans =
4
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!