2016-06-30 5 views
0

Ich habe eine Finanzielle Zeitreihe mit der Fints-Funktion in Matlab erstellt.Die Matlab-Plotfunktion plottet nicht meine Zeitserie

Also meine Zeit serie ist:

test3 =

desc: (none) 
freq: Unknown (0) 

'dates: (10)' 'times: (10)' 'series1: (10)' 
'04-Jan-2010'  '17:30'   [  0.0074] 
'05-Jan-2010'  '17:30'   [  -0.0109] 
'06-Jan-2010'  '17:30'   [  -0.0036] 
'07-Jan-2010'  '17:30'   [  -0.0013] 
'08-Jan-2010'  '17:30'   [ -3.2500e-04] 
'11-Jan-2010'  '17:30'   [ 6.4900e-04] 
'12-Jan-2010'  '17:30'   [  -0.0120] 
'13-Jan-2010'  '17:30'   [  0.0079] 
'14-Jan-2010'  '17:30'   [  0.0150] 
'15-Jan-2010'  '17:30'   [  -0.0231] 

ich die Serie zeichnen wollte, aber es hat nichts plotten. Sie finden beigefügt ein Bild des Ergebnisses. Ich verwendete: Plot (test3);

My result

Können Sie mir helfen? Ich habe kein verwandtes Problem gefunden, ich habe das Gefühl, dass das Problem sehr dumm ist, aber ich kann es wirklich nicht herausfinden.

Vielen Dank für Ihre Zeit

Antwort

1

Aus irgendeinem Grunde MATLAB für jedes Datum zwei Einträge hinzufügt, wenn die Zeitreihe Plotten, eine an der angegebenen Zeit (zB 04-Jan-2010 17.30.00 in Ihrem Fall) und eines um Mitternacht desselben Datums (zB 04-Jan-2010 00:01:00). Der entsprechende Y-Wert bei den hinzugefügten Einträgen ist NaN.

Um die Finanzzeitreihen zeichnen Sie können entweder:

  1. einen Formatbezeichner im Plotbefehl hinzufügen. Mit diesem können Sie Marker erhalten, aber nicht Linien, da die Linienstile werden wegen der NaN-Einträge außer Acht gelassen werden:

    plot(test3, 'o'); 
    
  2. Plot und die NaN Einträge entfernen:

    p = plot(test3, 'o-'); 
    nanidx = isnan(p.YData); 
    p.YData(nanidx) = []; 
    p.XData(nanidx) = []; 
    
+0

Thank you very viel für die Hilfe! –

Verwandte Themen