WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Variables Datum in Plots

 

elegy
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 01.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.11.2011, 11:30     Titel: Variables Datum in Plots
  Antworten mit Zitat      
Hallo ihr Lieben!

Ich habe Berechnungen in Matlab durchgeführt, deren Ergebnisse ich gerne plotten möchte (habe Tagesdaten, pro Tag ein Plot). Soweit noch kein Problem. Mein Problem ist die Legende. Wie schaffe ich es, dass das Datum dort jeweils mit variiert?

legend('US Treasury yield curve (as of 12/28/07)', ...
['NS(\beta_{0} = ' sprintf('%3.2f',par.beta(1)) ',' ...
'\beta_{1} = ' sprintf('%3.2f',par.beta(2)) ',' ...
'\beta_{2} = ' sprintf('%3.2f',par.beta(3)) ',' ...
'\tau = ' sprintf('%3.2f',par.tau) ')'])

anstatt dem 12/28/07 möchte ich dort das Datum für jeden Tag meiner Zeitreihe haben. Meine dates befinden sich in date <2288x1 double> und haben das Format 731583 usw. so dass ich daraus erst mal ein dd.mm.yyyy machen muss.
Ich hoffe das war verständlich. Hoffe wirklich dringend auf Hilfe!

Danke und viele Grüße
Elegy
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 24.11.2011, 11:48     Titel:
  Antworten mit Zitat      
Code:
legend(['US Treasury yield curve (as of ' date(1) ')'], ...
 

musst halt das date umwandeln vorher oder was auch immer. deine beschreibung der umwandlung ist ja nicht sehr aussage kräftig ^^
Private Nachricht senden Benutzer-Profile anzeigen
 
elegy
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 01.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.11.2011, 12:04     Titel:
  Antworten mit Zitat      
Danke für die schnelle Antwort! Smile
Die Umwandlung ist ja auch so ein Problem...hmmmm.
Ich habe das Datum aus Excel, dort sah es so aus 37623 für den 02.01.2003

Mit

date = x2mdate(data.indices(:,1)) ;

habe ich es in ein Matlab Datumsformat überführt (so habe ich's mir sagen lassen!)

und jetzt brauche ich es ja wieder so: dd.mm.yyyy
Mit datestr klappt das nicht wirklich...weil ich Probleme beim Plotten und der Legende kriege:/

sorry, ich bin absolut überfordert damit...:/
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 24.11.2011, 12:20     Titel:
  Antworten mit Zitat      
Hallo elegy,

Zitat:
und jetzt brauche ich es ja wieder so: dd.mm.yyyy
Mit datestr klappt das nicht wirklich...weil ich Probleme beim Plotten und der Legende kriege

Bitte zeige uns den Code, mit dem Du DATESTR aufrufst und erkläre, was genau "nicht wirklich klappt". Es ist immer viel leichter Fehler im Code zu verbessern als zu raten, was der Fehler sein könnte.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
elegy
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 01.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.11.2011, 12:33     Titel:
  Antworten mit Zitat      
Achso, ok. Hier ist also das gute Stück.

Code:

[data.indices data.inames] = xlsread('GermanGeneric', 'Tabelle2');
x = [1 2 1 2 3 4 5 6 7 8 9 10 20 30];


% Datum
date     =  x2mdate(data.indices(:,1)) ;
data.indices=data.indices(:,2:end);

% Actual yield curve and NS approximation

date=datestr(date);

for i=1: 5: size(y,2)
   
    par = nelsonfit(x,y(:,i));
    p = nelsonfun(x,par);
    figure
    set(gcf,'Color','w')
    plot(x,y(:,i),'-rs'); hold on
    plot(x,p,'-g' )
    title('Nelson-Siegel approximation')
    xlabel('Maturity, years')
   
   
legend('US Treasury yield curve as of ' date(i) ')',
    legend('US Treasury yield curve (as of 12/28/07)', ...
      ['NS(\beta_{0} = '  sprintf('%3.2f',par.beta(1)) ',' ...
           '\beta_{1} = ' sprintf('%3.2f',par.beta(2)) ',' ...
           '\beta_{2} = ' sprintf('%3.2f',par.beta(3)) ',' ...
           '\tau = '      sprintf('%3.2f',par.tau)     ')'])
         
         
 end]
 
Private Nachricht senden Benutzer-Profile anzeigen
 
elegy
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 01.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.11.2011, 12:35     Titel:
  Antworten mit Zitat      
ups, der zweite LEGEND-Befehl muss da natürlich raus...
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.