我有一个nx3
单元格数组,其中包含start time
,end time
的事件和place
列与此案例无关,但必须保留以供日后使用。每行都有一个事件。时间是几秒钟。我想创建一个过滤时间的函数,以便:
end_time(i) + threshold < start_time(i+1) for any given i within the array
如果不满足此类条件,则应在start_time(i) to end_time(i+n)
end_time(i+n) + threshold < start_time(i + n + 1)
之前将事件“start_time(i)
”合并“。也就是说,新的开始时间应该是end_time(i +n)
,新的结束时间应该是符合条件的A =
[17.9174] [17.9386] 'NYC'
[20.3504] [20.3628] 'NYC'
[26.7564] [26.7804] 'NYC'
[26.7956] [26.8016] 'NYC'
[26.8017] [26.9000] 'NYC'
[27.7117] [27.8000] 'NYC'
。应删除所有其他行。
我一直在考虑一种有效的方法,但我发现自己失去了
示例单元格位于
之下[17.9174] [17.9386] 'NYC'
[20.3504] [20.3628] 'NYC'
[26.7564] [26.9000] 'NYC'
[27.7117] [27.8000] 'NYC'
阈值0.2的期望输出应为
A =
aws ecr get-login --region YOUR_REGION --no-include-email | xargs -n 1 -P 10 -I {} bash -c {}
答案 0 :(得分:0)
for
的 break
循环肯定会解决您的问题。我建议你从那里开始。这通常是最快的方法,也有助于验证您的方法。
Matlab确实为这类问题提供了一些方便的功能,并利用其着名的矢量化效率来优雅地编码。如果您不熟悉它们,我会说阅读文档以了解以下功能
diff
,cell2mat
,>
然后提出的方法
cell2mat
diff
(附加参数)。>
或您想在此处使用的任何逻辑比较运算符。当然答案可以是一个班轮,但这不是我们应该关注的问题。在Matlab中快乐解决问题和编码。