2017-12-16 4 views
0

Ich habe Daten aus der Excel-Datei importiert. Nach dem Import Datum Datum, mein Datum wie folgt aussieht:Matlab: Konvertieren Sie Datum importiert Excel in lesbares Format?

0.641238425925926 
0.641932870370370 
0.642627314814815 
0.643321759259259 
0.644016203703704 

I datestr(Time) verwendet. Ich erhalte Datumsangaben in dem Format, das ich brauche, aber die Daten sind nicht im Tabellenformat. Ich muss die Daten plotten. Also muss ich alles im Tabellenformat haben.

datevec funktioniert, jedoch gibt es Stunde, Minute getrennt. Nicht sicher, wie man alles kombiniert.

Gibt es eine Arbeit?

Antwort

0

Wenn Sie erwarten, dass diese Zahlen vollständige Daten sind (und "vollständige Daten" meine ich zeitliche Punkte, die sowohl ein Datum als auch eine Uhrzeit enthalten), dann machen Sie beim Lesen der Excel-Tabelle wahrscheinlich etwas falsch. Aber da Sie nur über Stunden und Minuten sprechen, denke ich, dass Sie auf dem richtigen Weg sind und Sie nur die Zeit in Betracht ziehen wollen.

time = [ 
    0.641238425925926 
    0.641932870370370 
    0.642627314814815 
    0.643321759259259 
    0.644016203703704 
]; 

time_str = cellstr(datestr(data,'HH:mm:ss')); 

Der obige Code einen 5-für-1-Zellen-Array von Zeichenvektoren erzeugen, das zum Plotten nicht gut ist. Wie Sie gesagt haben, wird datevec Ihre Datetime-Werte teilen, und es ist auch nicht gut. Ich empfehle Ihnen, Ihre Werte in ihrem aktuellen numerischen Format zu behalten und sie zu verwenden, um Ihre x-axis Punkte zu definieren. Sobald die Handlung gezogen wird, können Sie immer Ihre Strichbeschriftungen in ein lesbares Format konvertieren:

time = [ 
    0.641238425925926 
    0.641932870370370 
    0.642627314814815 
    0.643321759259259 
    0.644016203703704 
]; 

value = [ 
    1 
    3 
    4 
    0 
    2 
]; 

plot(time,value); 
datetick('x','HH:mm:ss'); 

Wie man sehen kann, verliert diese die Sekunden Präzision wegen Rundung. So, um die höchstmögliche Präzision zu halten:

% ... 

plot(time,value); 
set(gca,'XTickLabel',cellstr(datestr(data,'HH:mm:ss'))); 
Verwandte Themen