基于日期时间值的子集时间表

10次浏览(最近30天)
露易丝·威尔逊
露易丝·威尔逊 2020年3月17日
编辑: 亚当Danz 2020年3月23日
你好,我有一个时间表,它的datetime值以10分钟为间隔递增,超过一年,例如:
DateTimeBoatCount光伏
______________________________
29.05.2019 10:30:00
29.05.2019 10:40:00 0
29.05.2019 10:50:00 0
29.05.2019 11:00:00 00
29.05.2019 11:10:00 0
29.05.2019 11:20:00 00
29.05.2019 11:30:00 0
29.05.2019 11:40:00 0
我想要这个数据子集,所以我只包括白天记录的值,例如0600-2030。我如何按日期时间值子集数据?之类的……
daylighthours = TT2 (TT2。DateTime = =“29/05/2019 06:00:00”“29/05/2019 20:30:00”
但它会在一年中的每一天循环

接受的答案

亚当Danz
亚当Danz 2020年3月17日
下面是一个演示,它决定了时间表的哪些行有两个值之间的时间。
创建一个演示时间表
TT =时间表((datetime (“现在”) -分钟(0:248:60000)',rand(242,1));
%获取time-part (duration格式)
大调的= TT。时间- dateshift (TT。时间,“开始”“天”);
定义日出和日落
日出时间= (6 30 0);% 6
日落时间=(20、30,0);% 20:30
确定日出和日落之间的时间
Idx = dur >= sunrise & dur <= sunset;
%隔离在白天的时间表行
TT (idx:)
注:日出日落并非每天固定不变。对我们来说,更好的方法是使用与datetime列相同长度的日出和日落向量,并确定每一行是否位于这些相关的日出/日落值之间。
3评论
亚当Danz
亚当Danz 2020年3月18日
谢谢你,@ 彰Agata
露易丝·威尔逊 在美国,日出日落的时间不仅取决于一年中的时间,还取决于地点。您可以搜索并下载这些值,也可以计算它们。
更新 ,这里有一个算法可以遵循
更新2 在美国,Loren刚刚发布了一篇博文,其中用GIF图像演示了这种算法。

登录评论。

更多的答案(0)

s manbetx 845


释放

R2019a

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!