data extraction from a time series

7 views (last 30 days)
Hi I have a time seris data. I want to extract the data , for example, from 06:01:01 to 20:01:01 everyday. I have attached a few days of data as a sample.
Thank you

Accepted Answer

Walter Roberson
Walter Roberson on 1 Feb 2022
I had to guess that you wanted to exclude 20:01:01 itself.
I wonder if what you would really want is "after 6 am (excluding 6 am), up to and include 8 pm" ? Or maybe 6 am (inclusive) up to but excluding 8 pm ?
filename = 'https://www.mathworks.com/matlabcentral/answers/uploaded_files/880370/test%20data.xlsx';
opt = detectImportOptions(filename, 'readvariablenames', false);
opt = setvartype(opt, 1, 'datetime');
opt = setvaropts(opt, 1, 'InputFormat', 'uuuu-MM-dd HH:mm:ss');
T = readtable(filename, opt);
[h, m, s] = hms(T{:,1});
d = duration(h, m, s);
starttime = duration(06,01,01);
endtime = duration(20,01,1);
mask = isbetween(d, starttime, endtime, 'openright');
selected_T = T(mask,:);
selected_T(end-10:end,:)
ans = 11×3 table
Var1 Var2 Var3 ___________________ __________ _____ 2021-07-03 15:01:01 {0×0 char} 0.259 2021-07-03 16:01:01 {0×0 char} 0.266 2021-07-03 17:01:01 {0×0 char} 0.239 2021-07-03 18:01:01 {0×0 char} 0.249 2021-07-03 19:01:01 {0×0 char} 0.251 2021-07-04 06:01:01 {0×0 char} 0.356 2021-07-04 07:01:01 {0×0 char} 0.334 2021-07-04 08:01:01 {0×0 char} 0.321 2021-07-04 09:01:01 {0×0 char} 0.319 2021-07-04 10:01:01 {0×0 char} 0.373 2021-07-04 11:01:01 {0×0 char} 0.371

More Answers (0)

Categories

Find more on Time Series in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!