Converting datenum to datetime when using writetable

6 visualizzazioni (ultimi 30 giorni)
Joel
Joel il 13 Apr 2023
Commentato: Stephen23 il 13 Apr 2023
Hi all
I want to export some datetime data to excel. I dont know how.
In addition, for certain years, there are no values. I show this by replacing values by zero
A = datenum(t0_pos1); %values 2021
B = datenum(t0_pos12); %values 2022
if isempty(B)==1
B=zeros(1,1);
end
C = [];
C(:,1) = A;
C(:,2) = B;
borjan=array2table(C,'VariableNames',{'2021','2022'});
writecell(G2,'asd2.xlsx','Sheet',1,'Range','H2')
writetable(borjan,'asd2.xlsx','Sheet',1,'Range','H3')
I got numbers into excel, but I want the datenum to be converted to datetime (yy-mm-dd-hh).
  1 Commento
Stephen23
Stephen23 il 13 Apr 2023
Do not convert perfectly good DATETIMEs to deprecated DATENUMs!
You can easily merge two DATETIME arrays using the EMPTY method of the appropriate class:
A = datetime(2023,1,1:9).'
A = 9×1 datetime array
01-Jan-2023 02-Jan-2023 03-Jan-2023 04-Jan-2023 05-Jan-2023 06-Jan-2023 07-Jan-2023 08-Jan-2023 09-Jan-2023
B = datetime(2023,1,[])
B = 0×0 empty datetime array
C = datetime.empty;
C(1:numel(A),1) = A;
C(1:numel(B),2) = B
C = 9×2 datetime array
01-Jan-2023 NaT 02-Jan-2023 NaT 03-Jan-2023 NaT 04-Jan-2023 NaT 05-Jan-2023 NaT 06-Jan-2023 NaT 07-Jan-2023 NaT 08-Jan-2023 NaT 09-Jan-2023 NaT
and then WRITEMATRIX as usual. Avoid deprecated DATENUM, DATESTR, and DATEVEC.

Accedi per commentare.

Risposte (1)

Cris LaPierre
Cris LaPierre il 13 Apr 2023
You convert your datetimes to datenums, and then write those numbers to Excel, which is what you are seeing.
Don't convert your datetimes to datenums. Then, you can use the format cells option in Excel to set the date format it gets displayed with.

Prodotti


Release

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by