Unable to detect datetime or duration data using readtimetable with a seconds index

16 views (last 30 days)
Here is a toy example of my problem:
% Create a timetable with a seconds index
data = timetable(seconds(1:3)', randn(3,1), randn(3,1))
writetimetable(data, "test.csv")
data_in = readtimetable("test.csv")
Output:
data =
3×2 timetable
Time Var1 Var2
_____ ________ _________
1 sec -0.10224 0.31286
2 sec -0.24145 -0.86488
3 sec 0.31921 -0.030051
Error using readtimetable (line 190)
Unable to detect datetime or duration data in file '/Users/username/test.csv' for row times.
The content of the CSV is as follows:
Time,Var1,Var2
1 sec,-0.225584402271252,0.0325574641649735
2 sec,1.11735613881447,0.552527021112224
3 sec,-1.08906429505224,1.10061021788087
For comparison, this works fine:
% Create a timetable with a regular datetime index
dt = datetime({'2015-12-18 08:00:00';'2015-12-18 08:01:00';'2015-12-18 08:02:00'});
data = timetable(dt, randn(3,1), randn(3,1));
writetimetable(data, "test.csv")
data_in = readtimetable("test.csv")

Accepted Answer

Cris LaPierre
Cris LaPierre on 13 Apr 2021
Edited: Cris LaPierre on 13 Apr 2021
The issue appears to be that seconds get written in a format that MATLAB cannot read back in. The only supported input formats for durations are
  • 'dd:hh:mm:ss'
  • 'hh:mm:ss'
  • 'mm:ss'
  • 'hh:mm'
  • Any of the first three formats, with up to nine S characters to indicate fractional second digits, such as 'hh:mm:ss.SSSS'
The values are written with the units: 1 sec
For now, I would recommend creating and saving the timetable using one of the recognized formats.
% Create a timetable with a seconds index
data = timetable(duration(zeros(3,1),zeros(3,1),(1:3)'), randn(3,1), randn(3,1))
data = 3×2 timetable
Time Var1 Var2 ________ ________ ________ 00:00:01 -0.35574 0.35245 00:00:02 -0.60954 -0.22619 00:00:03 0.6993 1.9414
writetimetable(data, "test.csv");
data_in = readtimetable("test.csv")
data_in = 3×2 timetable
Time Var1 Var2 ________ ________ ________ 00:00:01 -0.35574 0.35245 00:00:02 -0.60954 -0.22619 00:00:03 0.6993 1.9414
  7 Comments
Jiri Hajek
Jiri Hajek on 27 Jun 2022
I just met with this same issue in R2022, update 2. Hopefully the incompatibility between writetimetable and readtimetable will be reslved in a future MATLAB update...

Sign in to comment.

More Answers (0)

Categories

Find more on Get Started with MATLAB in Help Center and File Exchange

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!