Borrar filtros
Borrar filtros

How to omit milliseconds from a table.

1 visualización (últimos 30 días)
Constantin
Constantin el 6 de Nov. de 2023
Comentada: Constantin el 6 de Nov. de 2023
Omitting milliseconds when importing datetime.
Hello everyone, I am very new to matlab and writing scripts so please be patient with me.
I am trying to omit the milliseconds from the time I am importing from a CVS file. I came up with the below code to import cvs files based on a naming prefix into a table, but "DatetimeFormate" only changes the displaying of the values not how it is stored.
Ultimately I want to filter out rows from the table with the same HH:mm:ss and join this table with a second one based on the time column. I tried to filter for unique values, or calculating the mean of the values with the same time, but every entry is kept because of the milliseconds being different, so I am looking for a way to omit them.
fSearch=fullfile('TC*'); % build matching wildcard expression
d_TC = dir(fSearch); % and look for match
opts_TC = detectImportOptions(d_TC.name,"VariableNamingRule","preserve"); %Preserving Column Names
opts_TC = setvaropts(opts_TC,"Time","Type","datetime",DatetimeFormat="HH:mm:ss"); %InputFormat="MM/dd/yyyy HH:mm:ss.SSS"
TC = readtable(d_TC.name,opts_TC);
The Resulting table is 90394x6 with the first column being datetime Values like "'11:52:54" and the following five double values for temperatures from a sensor.
Thank you!

Respuesta aceptada

Walter Roberson
Walter Roberson el 6 de Nov. de 2023
TC.Time = dateshift(TC.Time, 'start', 'second');
  2 comentarios
Les Beckham
Les Beckham el 6 de Nov. de 2023
FYI, you might want to add the 'nearest' rule argument to specify rounding instead of truncation:
TC.Time = datetime(2023, 11, 6, 2, 49, 58.8)
TC = struct with fields:
Time: 06-Nov-2023 02:49:58
TC.TimeTruncated = dateshift(TC.Time, 'start', 'second')
TC = struct with fields:
Time: 06-Nov-2023 02:49:58 TimeTruncated: 06-Nov-2023 02:49:58
TC.TimeRounded = dateshift(TC.Time, 'start', 'second', 'nearest')
TC = struct with fields:
Time: 06-Nov-2023 02:49:58 TimeTruncated: 06-Nov-2023 02:49:58 TimeRounded: 06-Nov-2023 02:49:59
Constantin
Constantin el 6 de Nov. de 2023
Thank you! This is exactly what I needed. I did end up going with the rounded time, as that will be more accurate when I merge it with the other table.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Logical en Help Center y File Exchange.

Productos


Versión

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by