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

Zwei Zeitreihen (unterschiedliche Zeitpunkte) zusammenfügen

 

Martin2000

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.03.2010, 19:06     Titel: Zwei Zeitreihen (unterschiedliche Zeitpunkte) zusammenfügen
  Antworten mit Zitat      
Hallo,

Ich habe folgende Herausforderung:

Ich habe zwei CSV eingelesen und nun sehr genaue Daten für zwei Aktien, bzw. jede einzelne Transaktion der beiden Aktien mit dem genauen Zeitpunkt (ich habe also Tag, Stunde, Minute, Sekunde und Millisekunde).

Nun möchte ich, um die Daten analysieren zu können, die Preis natürlich zu einem bestimmten Zeitpunkt miteinander vergleichen. Und da die Transaktionen ja nicht immer zur gleichen Millisekunde stattfanden, muss ich die beiden Matrizen zusammenfügen zu einer neuen, in der sie dann nach der genauen zeit geordnet sind. Wenn eine Transaktion in einer Aktie stattgefunden hat und in der anderen nicht (was ja relativ wahrscheinlich ist), dann will ich Zeitpunkt und Preis dieser Aktie festhalten und den "aktuellsten" Preis der anderen Aktie daneben schreiben.

Ich hänge eine Excel-Tabelle an, um zu verdeutlichen, was ich meine.

Ich frage mich nun, was die schnellste Möglichkeit ist, diese beiden Matrizen zu durchlaufen, um die neue Matrix zu erstellen. Man kann wahrscheinlich sagen:

If DayAktie1 = DayAktie2
if HourAktie1 = HourAktie2
if Minute Aktie1 = MinuteAktie2
if SecondAktie1 = SecondAktie2
if MilliSecondAktie1 = MillisecondAktie2
newmatrix = Day, Hour, Minute, Second, Millisecond, PreisAktie1, PreisAktie2
etc. etc.

Aber irgendwie sagt mir mein BWLer-Herz, das so gerne ein Programmierer-Herz wäre, dass es da eine bessere Möglichkeit geben muss.

Was mein ihr?

Gruss
Martin

Problem.xls
 Beschreibung:

Download
 Dateiname:  Problem.xls
 Dateigröße:  17.5 KB
 Heruntergeladen:  602 mal
Problem.xls
 Beschreibung:

Download
 Dateiname:  Problem.xls
 Dateigröße:  17.5 KB
 Heruntergeladen:  501 mal


Harald
Forum-Meister

Forum-Meister


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

ein Vorschlag wäre, die Tag-Std-Min-Sek - Daten auf Sekunden oder Tage runterzubrechen. Eine Hilfe dabei kann DATENUM sein.

Wenn das geschehen ist, kann man die Zeitstempel mit UNION oder INTERSECT abgleichen.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.03.2010, 14:40     Titel:
  Antworten mit Zitat      
Lieben Dank Harald,

und die darauf aufbauende Frage: wenn ich nun die neue Matrix habe (sie ist entsprechend groß, ihre Erstellung dauert über 1000 Sekunden) will ich sie als csv abspeichern.

Bisher mache ich das so:

fid = fopen('Data.txt','w');
fprintf(fid,'%d %d %d %d %d %f %d %f %d \n',FileTotal);
fclose(fid);

Leider schreibt mir das aber erst die ganze Spalte 1 dann die Spalte 2 usw. und nicht erst Reihe 1 dann Reihe 2. Weißt Du wie ich das ändern kann?

Auch wird \n nicht erkannt, es wird also keine neue Zeile geschrieben. Weißt Du warum nicht?

Liebe grüße und besten Dank.
Martin
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 23.03.2010, 14:48     Titel:
  Antworten mit Zitat      
Zitat:

Leider schreibt mir das aber erst die ganze Spalte 1 dann die Spalte 2 usw. und nicht erst Reihe 1 dann Reihe 2. Weißt Du wie ich das ändern kann?


du kannst einfach die Matrix transponieren
Code:

fid = fopen('Data.txt','w');
fprintf(fid,'%d %d %d %d %d %f %d %f %d \n',FileTotal');
fclose(fid);

 
Private Nachricht senden Benutzer-Profile anzeigen
 
Martin2000

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.03.2010, 15:11     Titel:
  Antworten mit Zitat      
tatsache Smile Danke

und warum schreibt er mir nur die erste zeile wenn ich %\n mache????
 
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.