在matlab中的高数组中选择时间和日期范围之间的数据行

时间:2017-04-27 17:00:53

标签: matlab

我正在将高数组应用于几个.csv文件。高大的阵列看起来像:

  Timestamp           wind_spd_sd    wind_spd_mx
___________________    ___________    ___________

04/03/2016 00:00:01    0.57576        4.1        
04/03/2016 00:03:01    0.53692        3.1        
04/03/2016 00:06:01    0.35642        4.2        
04/03/2016 00:09:01    0.63012        4.9        
04/03/2017 00:12:01    0.30357        3.7        
04/03/2017 00:15:01    0.53442        10        
:                      :              :
:                      :              :

我希望能够在特定日期和时间之间选择数据行。我遇到了用于时间表的“时间范围”并将其用作:

S1 = timerange('01/01/2015 08:00:00','12/18/2016 12:00:00')

S2 = tt{S1,:}

但有错误:“只有选择时间表的行才支持使用TIMERANGE进行订阅。”

然后我尝试使用datenum:

t_start = datenum('04/03/2014 00:00:01', 'dd/MM/yyyy HH:mm:ss');

t_end = datenum('04/03/2015 00:03:01', 'dd/MM/yyyy HH:mm:ss');

rows = find(tt.Timestamp>t_start) 

,错误是: “对于'tall'类型的输入参数,未定义的函数'找'”

我不是百分百确定问题是否确实是高阵列,或者我在如何使用这些功能时犯了错误。有没有办法做我想在这里用高大阵列实现的目标?

1 个答案:

答案 0 :(得分:0)

使用timerange功能,您走在正确的轨道上。但是,您需要将tall数组转换为timetable,这是一种特定的数据类型。首先这样做:

TT = table2timetable(tt);
S1 = timerange('01/01/2015 08:00:00','12/18/2016 12:00:00')
S2 = TT(S1,:);