集团通过索引不连续的时间表

2视图(30天)
Eric Escoto
Eric Escoto 2021年11月18日
评论道: 凯利卡尼 2021年11月19日
我将确定分组基于两个时间标准从数组一个不连续的时间表。时间表是聚合1分钟的间隔。
的标准是:
1。连续rowtime至少5分钟,
2。至少一个rowtime不到15分钟从# 1(上图)或# 2)。
换句话说,至少5分钟的数据,如果一分钟连续在15分钟之后继续包括那些分钟组。
最后,我希望能够执行代数和其他操作变量包含在每一个新的分组(例如把每组的总和)。
提供示例数据。看起来应该有一个共4组。的一行(113)是一个时间,不符合上述critera,因此应该被丢弃或标记不同的组我可以删除它之后(也许通过一个“nan”标志?)。

接受的答案

凯利卡尼
凯利卡尼 2021年11月19日
这是一个可能的解决方案;它首先检查标准2然后回到验证# 1。你可以做到一举但发现连续运行可以乱所以我宁愿保持自己。我也选择不与南马克额外的团体,因为splitapply和其他分组功能坚持consecutive-integer分组;我发现它清洁过滤后的事实。
% 15分钟内第一组的标准
dt =分钟(diff (test1.TIMESTAMP));
grp = cumsum([真实;dt > 15);
%现在检查,每个小组至少有5分钟consecutives运行
maxrun = @ (x)马克斯(diff ([1;找到(分钟(diff (x)) > 1);长度(x) + 1]));
好= splitapply (@ (x) maxrun (x) > = 5, test1。时间戳、grp);
%每组的总和
grpsum = splitapply (@sum test1。mean_V、grp);
grpsum(~截止)=南;
3评论
凯利卡尼
凯利卡尼 2021年11月19日
你可以使用相同的splitapply设置你所需要的计算:
元= splitapply (@length test1。时间戳、grp);%的元素数量
t0 = splitapply (@min test1。时间戳、grp);%的最早时间

登录置评。

更多的答案(0)

下载188bet金宝搏


释放

R2021a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!