Import correct date and time from different columns in Excel

1 visualizzazione (ultimi 30 giorni)
Hi guys!
I have several excel files I want to access in matlab and of course one of the problems is date and time.
I am attaching one .xlsx in order for you to understand: I must combine columns B,C and D to get the date and column E is time (0 means 00:00, 1 means 01:00 etc).
Therefore the first raw of my data express the date and time 1/5/2019 (May 1st, 2019) at 00:00.
If I try this
obsdata(:, 2) = round(obsdata(:, 2)) ;
obsdata(:, 3) = round(obsdata(:, 3)) ;
obsdata(:, 4) = round(obsdata(:, 4)) ;
obsdata(:, 5) = round(obsdata(:, 5)) ;
Date = datetime(obsdata(:, 2), obsdata (:, 3), obsdata(:,4), obsdata(:,5), 0 ,0)
it doesn't work. Date appears messed up...
Any ideas please?

Risposta accettata

Star Strider
Star Strider il 14 Gen 2020
Try this:
In = readtable('Airport 2019 (1.5-30.9).xlsx', 'PreserveVariableNames',1);
hrmnsc = datetime(compose('%04d\n',In.Time), 'InputFormat','HHmm', 'Format','HH mm ss');
DVhms = datevec(hrmnsc);
DatesTimesDV = [table2array(In(:,2:4)), DVhms(:,4:6)];
DatesTimes = table(datetime(DatesTimesDV), 'VariableNames',{'DatesTimes'});
Airport = [In(:,1) DatesTimes In(:,6:end)];
The ‘Airport’ assignment is the desired result.
My apologies for the delay. It simply should not require a detour through date vectors to combine datetime dates and times.
  4 Commenti
Daphne PARLIARI
Daphne PARLIARI il 16 Gen 2020
I tried but failed... I downloaded R2019a and things are much more straightforward:
A.dec_time = datetime(A.year, A.month, A.day, A.Time, zeros(size(A,1),1), zeros(size(A,1),1));
Thank you for your help!
Star Strider
Star Strider il 16 Gen 2020
As always, my pleasure!
R2019a solved many problems. Upgrade to R2019b if you have the option toi do that. It solves more of them.

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by