Hi,how do I merge .txt file date and time column?

2 visualizzazioni (ultimi 30 giorni)
Hi,Need to merge date and time columns in one.Thank you!

Risposta accettata

Star Strider
Star Strider il 21 Dic 2022
Try something like this —
T1 = readtable('https://www.mathworks.com/matlabcentral/answers/uploaded_files/1238782/IMM2211.txt', 'VariableNamingRule','preserve')
T1 = 2880×18 table
Contributor: National Oceanography Centre, Liverpool Var6 Var7 Var8 Var9 Var10 Var11 Var12 Var13 Var14 Var15 Var16 Var17 Var18 ____________ ______________ ____________ _______ _________ ____ ____ ____ ____ _____ _____ _____ _____ _____ _____ _____ _____ _____ {'1)' } {'2022/11/01'} 00:00:00 5.616 0.293 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'2)' } {'2022/11/01'} 00:15:00 5.381 0.267 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'3)' } {'2022/11/01'} 00:30:00 5.13 0.243 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'4)' } {'2022/11/01'} 00:45:00 4.876 0.229 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'5)' } {'2022/11/01'} 01:00:00 4.61 0.215 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'6)' } {'2022/11/01'} 01:15:00 4.345 0.207 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'7)' } {'2022/11/01'} 01:30:00 4.093 0.212 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'8)' } {'2022/11/01'} 01:45:00 3.86 0.229 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'9)' } {'2022/11/01'} 02:00:00 3.637 0.244 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'10)'} {'2022/11/01'} 02:15:00 3.426 0.255 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'11)'} {'2022/11/01'} 02:30:00 3.227 0.259 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'12)'} {'2022/11/01'} 02:45:00 3.039 0.253 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'13)'} {'2022/11/01'} 03:00:00 2.867 0.242 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'14)'} {'2022/11/01'} 03:15:00 2.727 0.24 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'15)'} {'2022/11/01'} 03:30:00 2.622 0.25 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'16)'} {'2022/11/01'} 03:45:00 2.535 0.256 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
DateTime = datetime(T1.National, 'InputFormat','yyyy/MM/dd') + timeofday(datetime(string(T1.Oceanography)));
T1 = addvars(T1, DateTime, 'Before',2)
T1 = 2880×19 table
Contributor: DateTime National Oceanography Centre, Liverpool Var6 Var7 Var8 Var9 Var10 Var11 Var12 Var13 Var14 Var15 Var16 Var17 Var18 ____________ ____________________ ______________ ____________ _______ _________ ____ ____ ____ ____ _____ _____ _____ _____ _____ _____ _____ _____ _____ {'1)' } 01-Nov-2022 00:00:00 {'2022/11/01'} 00:00:00 5.616 0.293 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'2)' } 01-Nov-2022 00:15:00 {'2022/11/01'} 00:15:00 5.381 0.267 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'3)' } 01-Nov-2022 00:30:00 {'2022/11/01'} 00:30:00 5.13 0.243 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'4)' } 01-Nov-2022 00:45:00 {'2022/11/01'} 00:45:00 4.876 0.229 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'5)' } 01-Nov-2022 01:00:00 {'2022/11/01'} 01:00:00 4.61 0.215 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'6)' } 01-Nov-2022 01:15:00 {'2022/11/01'} 01:15:00 4.345 0.207 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'7)' } 01-Nov-2022 01:30:00 {'2022/11/01'} 01:30:00 4.093 0.212 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'8)' } 01-Nov-2022 01:45:00 {'2022/11/01'} 01:45:00 3.86 0.229 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'9)' } 01-Nov-2022 02:00:00 {'2022/11/01'} 02:00:00 3.637 0.244 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'10)'} 01-Nov-2022 02:15:00 {'2022/11/01'} 02:15:00 3.426 0.255 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'11)'} 01-Nov-2022 02:30:00 {'2022/11/01'} 02:30:00 3.227 0.259 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'12)'} 01-Nov-2022 02:45:00 {'2022/11/01'} 02:45:00 3.039 0.253 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'13)'} 01-Nov-2022 03:00:00 {'2022/11/01'} 03:00:00 2.867 0.242 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'14)'} 01-Nov-2022 03:15:00 {'2022/11/01'} 03:15:00 2.727 0.24 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'15)'} 01-Nov-2022 03:30:00 {'2022/11/01'} 03:30:00 2.622 0.25 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN {'16)'} 01-Nov-2022 03:45:00 {'2022/11/01'} 03:45:00 2.535 0.256 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
It creates a new variable called ‘DateTime’ and then inserts it as the second variable.
.
  7 Commenti
kolberg
kolberg il 22 Dic 2022
Thanks again!Where do I start to get more familiar with Matlab?
Star Strider
Star Strider il 22 Dic 2022
@kolberg — My recommendation would be to watch MATLAB Answers, and read the posts that you find most interesting, and relevant to your own projects.

Accedi per commentare.

Più risposte (1)

Stephen23
Stephen23 il 22 Dic 2022
Modificato: Stephen23 il 22 Dic 2022
This is easy and more efficient using the READTABLE() options:
fnm = 'IMM2211.txt';
obj = detectImportOptions(fnm, 'NumVariables',5,...
'Delimiter',{' ','M',')'}, 'MultipleDelimsAsOne',true,...
'LeadingDelimitersRule','ignore', 'TrailingDelimitersRule','ignore',...
'VariableNamesLine',10, 'VariableUnitsLine',11);
obj = setvartype(obj,'Time','duration');
obj = setvartype(obj,'Date','datetime');
obj = setvaropts(obj,'Date','InputFormat','y/M/d');
tbl = readtable(fnm,obj)
tbl = 2880×5 table
Cycle Date Time ASLVBG02 Residual _____ _________ ________ ________ ________ 1 2022/11/1 00:00:00 5.616 0.293 2 2022/11/1 00:15:00 5.381 0.267 3 2022/11/1 00:30:00 5.13 0.243 4 2022/11/1 00:45:00 4.876 0.229 5 2022/11/1 01:00:00 4.61 0.215 6 2022/11/1 01:15:00 4.345 0.207 7 2022/11/1 01:30:00 4.093 0.212 8 2022/11/1 01:45:00 3.86 0.229 9 2022/11/1 02:00:00 3.637 0.244 10 2022/11/1 02:15:00 3.426 0.255 11 2022/11/1 02:30:00 3.227 0.259 12 2022/11/1 02:45:00 3.039 0.253 13 2022/11/1 03:00:00 2.867 0.242 14 2022/11/1 03:15:00 2.727 0.24 15 2022/11/1 03:30:00 2.622 0.25 16 2022/11/1 03:45:00 2.535 0.256
tbl.DT = tbl.Date + tbl.Time;
tbl.DT.Format = 'yyyy/MM/dd HH:mm:ss'
tbl = 2880×6 table
Cycle Date Time ASLVBG02 Residual DT _____ _________ ________ ________ ________ ___________________ 1 2022/11/1 00:00:00 5.616 0.293 2022/11/01 00:00:00 2 2022/11/1 00:15:00 5.381 0.267 2022/11/01 00:15:00 3 2022/11/1 00:30:00 5.13 0.243 2022/11/01 00:30:00 4 2022/11/1 00:45:00 4.876 0.229 2022/11/01 00:45:00 5 2022/11/1 01:00:00 4.61 0.215 2022/11/01 01:00:00 6 2022/11/1 01:15:00 4.345 0.207 2022/11/01 01:15:00 7 2022/11/1 01:30:00 4.093 0.212 2022/11/01 01:30:00 8 2022/11/1 01:45:00 3.86 0.229 2022/11/01 01:45:00 9 2022/11/1 02:00:00 3.637 0.244 2022/11/01 02:00:00 10 2022/11/1 02:15:00 3.426 0.255 2022/11/01 02:15:00 11 2022/11/1 02:30:00 3.227 0.259 2022/11/01 02:30:00 12 2022/11/1 02:45:00 3.039 0.253 2022/11/01 02:45:00 13 2022/11/1 03:00:00 2.867 0.242 2022/11/01 03:00:00 14 2022/11/1 03:15:00 2.727 0.24 2022/11/01 03:15:00 15 2022/11/1 03:30:00 2.622 0.25 2022/11/01 03:30:00 16 2022/11/1 03:45:00 2.535 0.256 2022/11/01 03:45:00
  1 Commento
kolberg
kolberg il 22 Dic 2022
Spostato: Steven Lord il 22 Dic 2022
Thank you Stephen,that was very handy!Merry Christmas!

Accedi per commentare.

Categorie

Scopri di più su Dates and Time in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by