extract data from one day from a timetable

Hello everybody
I've a timetable with multiple variabiles and the time column containg both day and hour information. If I choose a day I would like to be able to extract from timetable all data collected during that day (that are many).
Now if I try to do that I only manage to extract the first value for that day, but remaing ones (after midnight) are not collected.
t0 = datetime(2006,01,01);
TT2.LivelloIdrometricoCorr(TT2.InizioValiditUTC(t0));

 채택된 답변

Star Strider
Star Strider 2022년 7월 5일

0 개 추천

Try something like this —
LD = load('ask_matlab.mat');
TT1 = LD.ans;
RT = TT1.Properties.RowTimes;
VN = TT1.Properties.VariableNames;
DayMthLv = day(RT) == 1 & month(RT) == 1; % Logical Vector
Mon1Day1 = TT1(DayMthLv,:) % Data For January 1, 2006
Running that code offline (since .mat files are not yet supported here) produces the appropriate result, a (48x2) timetable of the selected dates.
.

댓글 수: 2

Fabio
Fabio 2022년 7월 8일
Thank you,
I've actually tried to use your code adding:
DayMthLv = day(RT) == giorno & month(RT) == mese & year(RT) == anno; % Logical Vector
and performing an implementation with 3 for cycles, in order to execute this operation for each day from my time series.
I'm gonna make an attempt to verify if it works,
thank you for help and support.
Have a nice week end
As always, my pleasure!
You, too!
.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Steven Lord
Steven Lord 2022년 7월 5일
Use a timerange. First generate some sample data with datetime values representing random hours in July 2022.
rng default % for reproducibility
dt = datetime(2022, 7, randi(31, 10, 1), randi([0 23], 10, 1), 0, 0);
x = (1:10).';
tt = timetable(dt, x)
tt = 10×1 timetable
dt x ____________________ __ 26-Jul-2022 03:00:00 1 29-Jul-2022 23:00:00 2 04-Jul-2022 22:00:00 3 29-Jul-2022 11:00:00 4 20-Jul-2022 19:00:00 5 04-Jul-2022 03:00:00 6 09-Jul-2022 10:00:00 7 17-Jul-2022 21:00:00 8 30-Jul-2022 19:00:00 9 30-Jul-2022 23:00:00 10
Let's retrieve all the rows of tt from July 4th. We make a timerange that starts at midnight on the 4th and ends just before midnight on the 5th.
fourth = datetime(2022, 7, 4);
tr = timerange(fourth, fourth+days(1))
tr =
timetable timerange subscript: Select timetable rows with times in the half-open interval: [04-Jul-2022 00:00:00, 05-Jul-2022 00:00:00) See Select Timetable Data by Row Time and Variable Type.
Finally use tr to index into tt.
dataFromFourth = tt(tr, :)
dataFromFourth = 2×1 timetable
dt x ____________________ _ 04-Jul-2022 22:00:00 3 04-Jul-2022 03:00:00 6

카테고리

도움말 센터File Exchange에서 Timetables에 대해 자세히 알아보기

태그

질문:

2022년 7월 5일

댓글:

2022년 7월 8일

Community Treasure Hunt

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

Start Hunting!

Translated by