how to read mixed date and data

2 views (last 30 days)
DwiNY
DwiNY on 24 Sep 2021
Commented: DwiNY on 27 Sep 2021
How to read this data file:
2020/11/15 07:30:55 27.50 124
2020/11/15 07:40:55 27.63 114
2020/11/15 07:50:55 27.71 95

Accepted Answer

Jeremy Hughes
Jeremy Hughes on 27 Sep 2021
I made some corrections in the comments above, but this is how I would do this more robustly using partial detection with detectImportOptions.
filename = "example.txt";
opts = detectImportOptions(filename,"Delimiter","\t");
opts = setvaropts(opts,1,"Type","datetime","InputFormat","uuuu/MM/dd HH:mm:ss");
T = readtable(filename,opts)
T = 3×3 table
Var1 Var2 Var3 ___________________ _____ ____ 2020/11/15 07:30:55 27.5 124 2020/11/15 07:40:55 27.63 114 2020/11/15 07:50:55 27.71 95
  2 Comments
DwiNY
DwiNY on 27 Sep 2021
Dear Jeremy Hughes,
Thank you very much
DwiNY
DwiNY
DwiNY on 27 Sep 2021
Jeremy,
If you could make more a general, i.e. input file with XX number of lines of header would be appreciate.
Thank you

Sign in to comment.

More Answers (1)

the cyclist
the cyclist on 24 Sep 2021
I would try the readtable function.
You can specify the input formating if needed.
  4 Comments
DwiNY
DwiNY on 27 Sep 2021
Finally, I able to read the file correctly:
fid=fopen('filename.txt','rt');
formatSpec = '%{yyyy/mm/dd}D %{HH:mm:ss}D %f%f ';
delimiter = {'\t',' '};
dataArray = textscan(fid, formatSpec, 'Delimiter', delimiter,'MultipleDelimsAsOne', true, 'ReturnOnError', false);
fclose(fid)
Jeremy Hughes
Jeremy Hughes on 27 Sep 2021
If you're using format, there are issues with your format in both cases: mm cannot be both months and minutes, you want MM.
Also, you probably want the second part as duration if you're parsing these as separate fields.
try this: formatSpec = '%{yyyy/MM/dd}D{hh:mm:ss}T%f%f'
But I like your first approach better:
delimiter = '\t'; %no space
formatSpec = '%{yyyy/MM/dd HH:mm:ss}D%f%f'

Sign in to comment.

Categories

Find more on Dates and Time in Help Center and File Exchange

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!