2017-10-12 4 views
-1

J'ai un fichier csv qui contient une colonne pour les données au format Excel, et deux autres colonnes qui sont des flottants; La date au format Excel inclut le nombre de jours écoulés depuis le 1er janvier 1900, par exemple, 2 signifie 02 janvier 1900 et 365 signifie 30 décembre 1900, et ainsi de suite.Lecture des données de date-heure stockées au format Excel dans MATLAB

Le fichier se présente comme suit:

date,temp,value 
41909.89,49.67,32 
41910.67,49.16,36 
41911.37,45.33,37 

Quelle est la meilleure façon de lire ce fichier et convertir la date au format datetime dans Matlab?

+0

Avez-vous déjà google "Excel date Matlab"? Le premier hit (pour moi de toute façon) provient du site Mathworks et explique exactement ce que vous devez faire. –

Répondre

1

Utilisez readtable pour lire le fichier, puis convertissez les dates en utilisant datetime. Si vous disposez de la boîte à outils financière, vous pouvez effectuer la conversion des numéros de date Excel en numéros de date MATLAB en utilisant x2mdate. Si ce n'est pas le cas, le décalage dépend du format de date que vous utilisez dans Excel. Voir le document pour x2mdate pour plus de détails sur les décalages possibles.

>> tbl = readtable('datafile.txt') 
tbl = 
    3×3 table 
     date  temp  value 
    ________ _____ _____ 
    41909.89 49.67 32 
    41910.67 49.16 36 
    41911.37 45.33 37 
>> tbl.date = datetime(tbl.date+693960,'ConvertFrom','Datenum') 
tbl = 
    3×3 table 
      date   temp  value 
    ____________________ _____ _____ 
    27-Sep-2014 21:21:36 49.67 32 
    28-Sep-2014 16:04:48 49.16 36 
    29-Sep-2014 08:52:48 45.33 37