Timedata 'dd-mmm-yyyy HH:MM:SS' transform into seconds
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
I got a excel data in xlsx or csv, which looks like in the picture. ![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/202228/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/202228/image.png)
The time vector should be transformed into seconds, so i wrote this code.
Matlab throws me an error. How can i transform it into seconds?
Thank you for Help!
NTtemp=xlsread('Data.xlsx');
out=datestr(NTtemp(StartZeitInZeile:end,1),'dd-mmm-yyyy HH:MM:SS');
NTneueZeit=[datenum( out, 'dd-mmm-yyyy HH:MM:SS' ) .* (24*60*60) - datenum( out(1,:), 'dd-mmm-yyyy HH:MM:SS' ) .* (24*60*60)];
NT(:,1)=NTneueZeit;
NT(:,2)=NTtemp(StartZeitInZeile:end,2);
0 commentaires
Réponses (1)
Steven Lord
le 31 Jan 2019
I would avoid going through datenum and datestr. Instead I would import that column of data as a datetime array (which I believe readtable will do for you automatically.) If you then need the number of seconds since a particular time as an additional variable in that table, that's fairly straightforward. I'm going to compute how many seconds have elapsed since midnight.
rightnow = datetime('now')
lastMidnight = dateshift(rightnow, 'start', 'day')
elapsedSeconds = seconds(rightnow-lastMidnight)
As I type this it's about 10:30 in the morning, so elapsedSeconds should be about 37800 (10.5*3600). Your elapsedSeconds may be different depending on your time zone.
1 commentaire
Peter Perkins
le 31 Jan 2019
Better yet ...
elapsedTime = rightnow-lastMidnight
That leaves elapsedTime as a duration, and you no longer need to worry about units.
Voir également
Catégories
En savoir plus sur Dates and Time dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!