0

我的矩阵有一个带有时间的列 - 时间以毫秒为单位(自午夜以来的毫秒数 - 但不要担心)。

我需要确定时间比矩阵中最后一次少 5 秒的行,这是因为我要循环遍历矩阵并查看 5 秒前的数据,所以我需要知道在哪里结束我的 for i = 1:矩阵中的行减去我们最后 5 秒的任何位置,所以如果向前看 5 秒,我们不会超过矩阵尺寸。

所以让我们假设时间在矩阵的第 2 列,我们有 [rows,coloums] = size(matrix)

矩阵中的最后一个时间戳是 (rows,2) 并返回自午夜以来以毫秒为单位的时间,例如 53997401 所以 5 秒前或我的标记为此 (53997401-5000)

因此,我希望在上述数字之前的 coloumn2 中找到最后一次,或者搜索向下查找 matrix(:,2) 并返回 (xxx,2) 小于 (matrix(rows,2)-5000) 的行

即使它返回 coloum2 小于 (matrix(rows,2)-5000) 的所有行的新向量,那么我们也可以获取该向量的大小以查看符合我们标准的最后一行是什么

用简单的英语往下看并返回 ans < 例如 53997364 的行,即返回为 4

53984704
53991775
53992283
53992283
53997367
53997367
53997367
53997367
53997401
53997401
4

1 回答 1

3

对于您的样本向量(我们称之为t):

find(t < t(end) - 5000, 1, 'last')
ans = 4

对于完整的矩阵,几乎是一样的:

find(matrix(:,2) < matrix(end,2) - 5000, 1, 'last')
于 2013-07-23T13:34:07.530 回答