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
Walter Roberson
2019년 3월 26일
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?
MOMO JOJO
2019년 3월 27일
답변 (1개)
Akira Agata
2019년 3월 27일
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
Walter Roberson
2019년 3월 27일
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;
Akira Agata
2019년 3월 27일
Thank you, Walter-san !
MOMO JOJO
2019년 3월 28일
Peter Perkins
2019년 4월 2일
isbetween would probably make this more manageable:
>> isbetween(timeofday(datetime),'14:00:00','16:30:00')
ans =
logical
1
Aryan Ritwajeet Jha
2021년 4월 7일
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
pruth
2022년 2월 21일
hello,
what if i want to select minutes along with an hour. ? data between 14:30 and 15:30 ? how do i do it ?
Peter Perkins
2022년 3월 2일
Presumably you would modify my answer from 2-Apr-2019.
카테고리
도움말 센터 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!