Ihre Datendatei Unter der Annahme hat das Format oben angegebenen Sie TEXTSCAN nutzen, um die Daten zu lesen:
fid = fopen('data.txt','rt');
C = textscan(fid,'%s %s %s %d','Delimiter','.','CollectOutput',1);
fclose(fid);
Die erste Zelle von C
wird ein N-by-3-Zellen-Array von Strings (die Teile enthalten des Datums) und die zweite Zelle von C
wird einen N-mal-1-Vektor der Datenmessungen enthalten. Sie können zuerst Verketten der drei kleineren Zeichenfolgen in eine Datumszeichenfolge ein Datum Nummer für jede Messung erstellen und dann die DATENUM Funktion:
t = datenum(strcat(C{1}(:,3),'-',C{1}(:,2),'-',C{1}(:,1)));
data = C{2};
Sobald Sie einen Vektor von Datumszahlen t
mit Vektor der Messungen gehen data
, können Sie sie zeichnen:
plot(t,data,'*'); %# Plot the points as asterisks
Jetzt können Sie die x-Achsenbeschriftungen ändern, um die tatsächlichen Daten zu zeigen. Eine Option ist die Verwendung der Funktion DATETICK, eine einfache und elegante Lösung, die in steven's answer gegeben ist. Eine weitere Option ist die Funktion DATESTR zu verwenden, um die Etiketten selbst zu erstellen, ändern Sie dann die XTick und XTickLabel Eigenschaften der aktuellen Achsen:
xpts = min(t):max(t); %# Make a full vector, filling in missing dates
set(gca,'XTick',xpts,'XTickLabel',datestr(xpts)); %# Set axes properties
HINWEIS: Unabhängig davon, welche Option Sie zum Ändern der x-Achse wählen Etiketten zu Datumsstrings, kann es zu Problemen kommen, wenn die Etiketten einander überlappen, wenn die Teilstriche zu nahe beieinander liegen. Sie können dies beheben, indem Sie die Teilstriche entlang der x-Achse verkleinern oder neu positionieren (indem Sie die Eigenschaft XTick ändern) oder die Eigenschaft FontSize der Achse anpassen. Wenn Sie die Beschriftungen drehen möchten, um sie passend zu machen, müssen Sie die Beschriftungen löschen und neue gedrehte text objects für sie erstellen.Die folgende Vorlage auf The MathWorks File Exchange macht genau das:
+1: Schöne finden. Ich wusste nichts von dieser Funktion. – gnovice
Das ist veraltet. Jetzt sollten Sie datetime http://www.mathworks.com/help/matlab/matlab_prog/plot-dates-and-durations.html verwenden – hyprfrcb