Verfasst am: 12.11.2009, 18:13
Titel: Vektor zu erstellten Matrizen hinzufügen und diese verkette
Hey Leute,
Ich habe
- 9 Excel Dateien, jeweils für die Jahre 2000-2008 mit Daten
jede Excel Datei enthält 12 Sheets, für jeden Monat eins
jedes Sheet enthält Daten für 29/30/31 Tage entsprechend dem Monat
Nun ist meine Aufgabe diese Daten in eine große fortlaufende Variable zu verpacken. Angefangen habe ich mit folgender Funktion, mit der ich erstmal Jedes Sheet von jeder Datei einzeln in eine Variable umwandle.
edit:
Zum Verständnis des Codes:
Die Excel Dateien heißen 2000.xls-2008.xls, haben jeweils 12 relevante Sheets enthalten. Daher die Laufvariable i für die 12 Sheets in jeder einzelnen Datei und k für die verschiedenen Excel Dateien.
Beides später auch für die Benennung der Variablen relevant.
Wenn ich das ausführe habe ich in meinem Workspace die Variablen J2000_1 bis J2008_12, das sind jeweils 29/30/31 Zeilen á 4 Spalten.
Nun möchte ich zu jeder Matrix einen Zeitvektor hinzufügen, indem in der 5ten Spalte pro Variable die Tage 1-31 bspsw. enthalten sind.
Anschließend sollen all diese Variablen untereinander gehängt werden, zu einer großen <YYYYYYx5> Matrix, die dann alle Daten von Jan 2000 bis Dez 2008 enthält.
Hat irgendjemand einen Vorschlag, wie ich den Zeitvektor zu den im o.g. Code erstellten Matrizen einfügen kann?
Und mit welchem Befehl kann man am einfachsten bestehende Matrizen zu einer anderen hinzufügen, quasi verketten?
Mit freundlichen Grüßen und bestem Dank an die, die sich die Zeit nehmen mein Thread durchzulesen oder vielleicht sogar antworten,
Chris.[/i]
MATLAB gibt ein Fehler vor dem num2str(k) aus und kann nicht ausgeführt werden.
Ich bin gerade ratlos, wie muss ich es umschreiben, dass MATALB es korrekt annimmt? Mit Kommata zwischen den Befehlen, also so:
funktioniert es ja logischerweise auch nicht, von der Syntax her geht es zwar, aber für den Befehl length sind es zu viele Ausdrücke, damit kann er nichts anfangen.
ausprobiert habe, gibt er mir
a = 7
aus. Das kann ja schonmal gar nicht sein, i und k habe ich jeweils testweise so geändert, dass er mir nur eine Variable ausgibt, nämlich J200_4. Diese Matrix ist eine <30x4 double>. Die Länge 7 macht keinen Sinn.
Wieso funktioniert bei mir der length Befehl nicht, wenn ich es mit den num2str-Befehlen und den Variablen k und i verwenden will?
Jemand einen Rat?
Grüße,
Chris/Shin.
edit:
Die Probleme häufen sich.
Ich habe gerade gemerkt, dass manche Excel Sheets gar nicht immer Daten für jeden Tag eines Monats enthalten, soll heißen:
Es kann sein, dass im Juli nur für Tag 1-28 Daten vorhanden sind, somit wird auch nur eine 28x4 Matrix erstellt durch meinen Code. Da ich aber zu jedem Monat in der 5ten Spalte die jeweils zugehörigen Serial Date Numbers hinzufügen muss, wird das zu Problem führen, da ich die 28x4 Matrix mit einem 31 zeiligen Vektor verbinden muss. Schwierige Sache für einen MATLAB Anfänger wie mich.
Grüße
Einstellungen und Berechtigungen
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
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.