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

Zeitreihe (Datum, Daten)

 

vatten

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.11.2011, 17:53     Titel: Zeitreihe (Datum, Daten)
  Antworten mit Zitat      
Hallo zusammen,
ich hatte bisher noch nicht viel mit Matlab zu tun, so dass ich bisher noch keine Lösung zu meiner kleinen Aufgabe gefunden habe.
Ich möchte eine Zeitreihe in Matlab einlesen und als Diagramm/plot darstellen.
Die Textdatei (am.txt) habe ich angehängt oder siehe auch unten. Bisher habe ich nicht herausgefunden wie ich sich die erste Spalte (yyyy.mm.dd) als Datum auf der X-Achse darstellen lässt.
In der zweiten Spalte stehen dann die Daten (y-Achse).

Ich hoffe mir kann jemand weiterhelfen.

1991.08.01. 1926.51
1991.08.02. 1569.04
1991.08.03. 721.59
1991.08.04. 448.14
1991.08.05. 326.21
1991.08.06. 262.21
1991.08.07. 224.51
1991.08.08. 200.11
1991.08.09. 192.02
1991.08.10. 184.37
1991.08.11. 177.14
1991.08.12. 170.29
1991.08.13. 163.79
1991.08.14. 157.63
1991.08.15. 151.78
1991.08.16. 146.22
1991.08.17. 140.94

am.txt
 Beschreibung:

Download
 Dateiname:  am.txt
 Dateigröße:  4.48 KB
 Heruntergeladen:  462 mal


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 07.11.2011, 18:40     Titel: Re: Zeitreihe (Datum, Daten)
  Antworten mit Zitat      
Hallo vatten,

Was hast Du denn bisher versucht und welche konkreten Probleme traten dabei auf?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
vatten

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.11.2011, 10:10     Titel:
  Antworten mit Zitat      
Hallo Jan,
bisher habe ich nur die folgenden beiden Anweisungen ausprobiert.

>> load am.txt;
>> plot (am)

Immerhin wird die Zeitreihe damit geplottet, nur das Datumsformat wird natürlich noch nicht erkannt. Meine Frage ist jetzt wie ich Datum und Werte jeweils als Vektor einlesen kann, sodass beim plotten auf der y-Achse das Datum angezeigt wird.

Gruß vatten
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.500
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.11.2011, 10:19     Titel:
  Antworten mit Zitat      
Hallo,

der Befehl load ist für Textdateien nicht empfehlenswert. In deinem Beispiel wird z.B. das Datum als Gleitkommazahl interpretiert; leider geht dabei die Tag-Information verloren.

Empfehlung:
TEXTSCAN zum Einlesen der Daten
DATENUM zum Umwandeln der Datumsstrings in Datumsnummern
DATETICK zur gewünschten Beschriftung der Achsen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
vaten

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.11.2011, 14:52     Titel: Textfeld in Diagramm
  Antworten mit Zitat      
Hallo,
mittlerweile konnte ich mein Problem lösen. Vielen Dank!
Jetzt möchte ich zu einem Diagramm ein Textfeld hinzufügen. Das Textfeld soll aber auch eine berechnete Variable enthalten. Vielleicht kann mir hier jemand helfen?

Viele Grüße
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 17.11.2011, 12:56     Titel:
  Antworten mit Zitat      
Hallo vaten,

die Stichworte sind annotation für die Textbox und sprintf für die Verwendung von berechneten Werten im Text.

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
vatten

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.11.2011, 10:39     Titel:
  Antworten mit Zitat      
Hallo,
vielen Dank für die Hilfe!
Jetzt habe ich eine Matrix (1466x6) als n = datevec(year,'yyyy.mm.dd.') für mein Datum sowie einen 1466x1 Vektor mit den zugehörigen Werten. Gibt es eine Möglichkeit einzelne Monate (z.B. nur n(:,2)==1 für den Januar) aus der datvec matrix auszuwählen und die zugehörigen Werte (aus dem Wertevektor) in einem anderen Vektor zu speichern?
 
Jan S
Moderator

Moderator


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

Zitat:
Gibt es eine Möglichkeit einzelne Monate (z.B. nur n(:,2)==1 für den Januar) aus der datvec matrix auszuwählen und die zugehörigen Werte (aus dem Wertevektor) in einem anderen Vektor zu speichern?

Ja, die Möglichkeit gibt es.
Code:
v = n(n(:, 2) == 1, :);

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
knocks
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 12.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.04.2012, 22:15     Titel:
  Antworten mit Zitat      
sorry für das reanimieren des Threads, aber ich habe eine sehr ähnliche Frage.

Ich möchte eine Zeitreihe einlesen die wie folgt aufgebaut ist:

Datum, Wert 1, Wert 2

03.01.2000 1455.22 3.08458597
04.01.2000 1399.42 1.3010478
05.01.2000 1402.11 1.80184373
06.01.2000 1403.45 1.64371386
07.01.2000 1441.47 1.879722509

Ist es möglich, diese Daten in eine Matrix zu speichern, obwohl Spalte 1 als String gespeichert wird und die Spalten 2 und 3 als Werte.

Mir ist es deshalb wichtig, weil ich verschiedene Bezüge auf Spalte 2 und 3 machen werde, welche das korrespondierende Datum aus Spalte ausgeben sollen, z.b. if Wert 1>1400, output Datum (oder ähnlich)

Was mir bereits gelungen ist, ist die Spalte 2 und 3 einzulesen, wenn ich die Spalte 1 aus dem Excel raugenommen habe, und zwar mit folgendem Befehl:

clc;clear;
%Einlesen der Daten
[nums, txt] = xlsread('test.xls') %Einlesen der Datei

varNames = char(txt(1,Smile); %Bestimmen der Spaltenüberschriften=Variablennamen

nums sind dann die Zahlenwerte, mit welchen ich Abfragen/ Berechnungen durchführen kann und in txt sind die Spaltennamen aus dem Excelfile.

Kann mir (Anfänger im Matlab-Selbststudium) bitte jemand weiterhelfen, wie ich vorgehen kann? Besten Dank schon im Vorraus.

gruss knocks
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.500
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.04.2012, 10:41     Titel:
  Antworten mit Zitat      
Hallo,

das sollte auch klappen, wenn du die erste Spalte drin lässt:

Code:
[nums, txt] = xlsread('test.xls') %Einlesen der Datei


Dann kannst du die Datumsangaben extrahieren, etwa so:
Code:
dates = txt(3:end,1);


Oft ist eine Umwandlung in das numerische Datumsformat hilfreich, z.B.:
Code:
numdates = datenum(dates, 'dd.mm.yyyy');


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
knocks
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 12.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.04.2012, 15:06     Titel:
  Antworten mit Zitat      
Hallo Harald

Vielen Dank für die schnelle Antwort. Ich weiss nicht ob die Daten so richtig eingelesen werden, aber wenn ich den oben beschriebenen Code eingebe ergibt sich folgender Output

zuerst kommen die 2 Spalten mit den Werten 1 und 2 (als Matrix in nums)
und dann
Wobei ClosingSPX und PCRSPX die Überschriften der Wertespalten 1 und 2 sind.

txt =

'Date' 'ClosingSPX' 'PCRSPX'
'03.01.2000' '' ''
'04.01.2000' '' ''
'05.01.2000' '' ''

usw.

Was bewirkt die Umformung des Datum? bzw. wie kann ich die numdates wieder als dd.mm.yyyy ausgabe darstellen (z.b. in grafiken)?

Besten Dank für die Hilfe
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.500
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.04.2012, 15:13     Titel:
  Antworten mit Zitat      
Hallo,

die Umformung bewirkt, dass die Daten überhaupt geplottet werden können.

Um die Achsen schön zu formatieren, hilft DATETICK.

Grüße,
Harald
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.