select data from table according to date and time

Hallo,
I need your help for matlab.
I have a table with dates and times data for 7 days. I want to select records between 14:00 to 16:00 for each day?!
Thanks

2 Comments

Are the times in a separate variable in the table, or do you have a single datetime column?
If the times are in a separate variable in the table, then what format are they in?
Dear Walter,
The times are in the same table. Some of data are mentionned bellow. They are for 7 days
'08-Feb-2019 11:03:40'
'08-Feb-2019 11:08:40'
'08-Feb-2019 11:13:40'
'08-Feb-2019 11:18:40'
Thanks

Sign in to comment.

Answers (1)

How about the following way?
% Create sample data
Time = sort(datetime(2019,3,24) + days(7)*rand(1000,1));
Data = rand(1000,1);
T1 = table(Time,Data);
% Select records (row index) between 14:00 to 16:00
idx = (T1.Time.Hour >= 14) & (T1.Time.Hour) < 16;
% Extract selected records
T2 = T1(idx,:);

8 Comments

Dear Akira,
It works :-) but if i want to select records between 14:00 to 16:30, what should I add to the prevois code,please.
I have put 16.5 but all records of 16:00 are extracted?
Thank you very much
idx =(T1.Time.Hour >= 14) & ((T1.Time.Hour < 16) | (T1.Time.Hour == 16 & T1.Time.Minute <= 30));
Or you could do something like
temp = T1.Time.Hour * 60 + T1.Time.Minute;
idx = temp >= 14*60 & temp <= 16*60+30;
Thank you, Walter-san !
Thanks dears Walter-san & Akira Agata,
For your grand help.
isbetween would probably make this more manageable:
>> isbetween(timeofday(datetime),'14:00:00','16:30:00')
ans =
logical
1
isbetween command is much more convenient.
%Here, the 'time' column in the 'data' table stores the complete time for that instance
%in the format 'dd-MMM-yyyy hh:mm:ss'.
intervalStartTime = '09-Aug-2019 15:50:00';
intervalEndTime = '09-Aug-2019 16:00:00';
idx = isbetween(data.time,intervalStartTime,intervalEndTime);
selectedRows = data(idx,:); %Stores only the rows with the desired time instances
hello,
what if i want to select minutes along with an hour. ? data between 14:30 and 15:30 ? how do i do it ?
Presumably you would modify my answer from 2-Apr-2019.

Sign in to comment.

Tags

Asked:

on 26 Mar 2019

Commented:

on 2 Mar 2022

Community Treasure Hunt

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

Start Hunting!