Import correct date and time from different columns in Excel

1 次查看(过去 30 天)
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?

采纳的回答

Star Strider
Star Strider 2020-1-14
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 个评论
Daphne PARLIARI
Daphne PARLIARI 2020-1-16
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 2020-1-16
As always, my pleasure!
R2019a solved many problems. Upgrade to R2019b if you have the option toi do that. It solves more of them.

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by