2017-09-03 4 views
1

Wie Sie einen Vektor von Sekunden zu Zeit hinzufügen HH: mm: ssPM in MATAB?Hinzufügen von Sekunden zu Zeit in HH: mm: ssPM-Format

Ich habe normalerweise diesen netten Weg in Excel, um normales Zahlenformat in Stunden und Minuten und sek umzuwandeln. format mit einfachen Zellen benutzerdefinierte Formatierung, aber wenn ich Code unten in MATLAB, anstatt in Sekunden inkrementieren, fügt es in Tagen hinzu!

time = 1+0:50000+0;  % sec 

% To show date as plot label it should be converted from numbers to letters 
hr_matlab = time' + datenum('4:10:44 PM'); 
hr= datestr(hr_matlab, 'HH:MM:ssPM'); 

figure(222) 
plot(hr,S,'-b','LineWidth',2) 

Ich verwende MATLAB2014a und haben keinen Zugriff auf Funktion datetime.

Antwort

1

datenum konvertiert das Datum in eine Zahl, die Tage als ganze Zahlen darstellt. Wenn Sie den Vektor [1,2,3, ...] hinzufügen, addieren Sie daher Tage zu Ihrer festen Zeit ('4:10:44 PM').

wenn Sie es als Sekunden hinzufügen möchten, müssen Sie time in Höhe von Sekunden pro Tag verteilen:

hr_matlab = (time')/86400 + datenum('4:10:44 PM'); 
+1

konjugiert komplexe transpose ''' wird hier nicht benötigt –

+0

Ich wollte nur das OP-Format behalten, damit er genau sehen kann, wo der Fehler im Code liegt. Es spielt wirklich keine Rolle, wenn Sie einen Vektor mit natürlichen Zahlen haben. Aber vielleicht sollte der richtige Weg "Zeit" sein, danke für die Aufmerksamkeit. – Adiel

+2

Es ist wirklich * wichtig *. Sich an schlechte Praktiken gewöhnen * ist * wichtig. –

1

Eine einfache Möglichkeit ist, fügen Sie zwei date numbers:

hr_matlab = datenum('4:10:44 PM') + datenum(0, 0, 0, 0, 0, time.'); 
Verwandte Themen