Excel sheet time data defaulting to January 1st, 1970 on plot
9 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
notalwayssure
il 11 Gen 2022
Commentato: Star Strider
il 11 Gen 2022
I am importing excel sheeting to MatLab with time (MM-dd-yyyy HH-mm) in the first column and voltage data in the second column. When I go to plot this data, the x-axis (time) defaults to January 1st, 1970. How do I go about fixing this? The date my excel data starts on is December 1st, 2021.
I have been using the datetime function but think it may need to be tweaked.
1 Commento
Steven Lord
il 11 Gen 2022
Please show us how you imported the data from the spreadsheet and how you used datetime as part of the process of preparing your data. Did you use readtable on your spreadsheet? If not did you use datetime to 'ConvertFrom', 'Excel' the data you read from the file?
Risposta accettata
Star Strider
il 11 Gen 2022
My best guess is that datetime is not interpreting the time column correctly.
It would need to be something like this:
time = '12-01-2021 00-01'
dttime = datetime (time, 'InputFormat','MM-dd-yyyy HH-mm', 'Format','yyyy/MM/dd HH:mm')
Use the appropriate string for the 'Format' name-value pair depending on how the result is to be displayed.
.
3 Commenti
Star Strider
il 11 Gen 2022
I would use ‘logical indexing’ to eliminate the 1970 values —
time = ['12/20/2021 13:10:00'
'12/20/2021 13:10:01'
'12/20/2021 13:10:02'
'01/11/1970 15:40:00'
'12/20/2021 13:10:03'];
dt_time = datetime(time, 'InputFormat','MM/dd/yyyy HH:mm:ss')
year_not_1970 = year(dt_time) ~= 1970;
dt_time_new = dt_time(year_not_1970)
Using this in a table would require a second dimension reference —
T = table(dt_time, randn(size(dt_time)))
T_new = T(year_not_1970,:)
or something similar.
.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Data Import from MATLAB in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!