|
|
Mehrere Excel-files mit Matlab auslesen |
|
Dominik |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.09.2010, 13:55
Titel: Mehrere Excel-files mit Matlab auslesen
|
 |
Hallo zusammen,
ich würde ger eine bestimmte Zelle aus mehreren Excel Dateien auslesen und bin nicht ganz sicher wie das funktioniert.
Ich schaffe es, aus einer Datei die gewünschte Zelle auszulesen. Das stellt hiermit
num = xlsread('66_2005',4,'D2');
ja kein problem dar. Mein Problem ist nun, dass ich ca. 120 solcher Excel-Dateien habe und aus allen diese eine Zeile gern in einem Vektor zusammenfassen würde. Jedes Dokument hat einen anderen namen (x_2005) wobei x von 66 bis 325 variiert (mit einigen Lücken).
Ist das möglich? Wenn ja, wie? Es muss im nachhinein noch nachvollziehbar bleiben, welcher Wert zu welchen Dokument gehört!
Vielen Dank.
Gruß, Dominik
|
|
|
|
|
derOli |

Forum-Meister
|
 |
Beiträge: 579
|
 |
|
 |
Anmeldedatum: 19.03.08
|
 |
|
 |
Wohnort: Leipzig
|
 |
|
 |
Version: 2010a
|
 |
|
|
 |
|
Verfasst am: 17.09.2010, 18:09
Titel:
|
 |
Hi,
das ist kein Problem. Mit dir den Pfad einlesen, wo die Exceldateien gespeichert sind. Dann in einer For-Schleife den xls-befehl ausführen und dann Ergebnis in einen vorher definierten Vektor speichern. Sag Bescheid wenn du weiter bist und damit Hilfe brauchst.
Grüße
der Oli
|
|
|
Dominik |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.09.2010, 09:46
Titel:
|
 |
Hallo Oli. Danke für deine schnelle hilfe. das das kein großes problem darstellen sollte hab ich mir schon fast gedacht, bin allerdings noch sehr unwissend im umgang mit matlab. vielleicht kannst du mir ja nen paar gute tutorien empfehlen!?
zu meiner frage:
kannste mir vielleicht einfach mal den code aufschreiben wie du das machen würdest!? hab z.b. das problem das meine for-schleife irgendwie nich so will. weil wenn ich das i ja in den dateinamen einbaue, sprich 'i_2005' iteriert der dieses i ja nicht ne?
vielen dank
Dominik
|
|
|
Phate |

Forum-Guru
|
 |
Beiträge: 283
|
 |
|
 |
Anmeldedatum: 09.11.09
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: R2008b
|
 |
|
|
 |
|
Verfasst am: 20.09.2010, 12:20
Titel:
|
 |
Hi,
Also eine for Schleife in Matlab sieht folgendermaßen aus:
Vermeide am besten die i und j als Laufvariablen, da diese für Imaginärteile von komplexen Zahlen stehn.
Die For-Schleife läuft jetzt von 1 bis 10 kannst auch beliebeig erweitert bzw. verkürzen.
Tutorials findest im Netz denk ich genug einfach mal google antreten.
Grüße
|
|
|
Dominik |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.09.2010, 13:31
Titel:
|
 |
Hallo, vielen dank für die Antwort.
Verstehe so schonmal ein Stück mehr.
Leider komme ich immernoch nicht zur gewünschten Lösung meines Problems:
Wenn ich den Code wie genannt eingebe, liest Matlab ja nur aus einer einzelnen excel-file, die ich eben unter 'filename' angebe, die daten aus... (sprich nur den einen Wert den ich auch suche aber eben nur aus dieser Datei)...
Wie kann ich nun so iterieren, dass ich immer wieder eine andere excel-file anspreche und den einen Wert von sheet 4 herausziehen kann (dazu ja die for-schleife an dieser Stelle)? Vielleicht liegt die Lösung auf der Hand aber ich komme grade nicht dahinter .
Die Dateien haben namen wie 66_2005.xls und 110_2005.xls ...
danke
|
|
|
Phate |

Forum-Guru
|
 |
Beiträge: 283
|
 |
|
 |
Anmeldedatum: 09.11.09
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: R2008b
|
 |
|
|
 |
|
Verfasst am: 20.09.2010, 15:58
Titel:
|
 |
Hi,
Schau mal in die Skripecke weiter unten im Forum. Da liegt ein Skript zum einlesen von Dateiennamen aus einem Ordner wenn ich mich nicht täusche.
Bin mir nicht sicher ob das auch für .xls Dateien geht aber versuchen solltest es mal erspart dir dann einiges an Arbeit.
Wie du auf alle Inhalte zugreifst wird am einfachsten über ein Array gehn in dem deine Dateinamen stehn. zB so:
Zugreifen auf die einzelnen Dateinamen geht dann wie folgt:
Grüße
|
|
|
Dominik |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.09.2010, 14:50
Titel:
|
 |
|
 |
|
hmmm. gut, ich habe dann nun einen teil der arbeit erstmal von hand erledigt weil mir das einlesen der dateien nach dem beitrag in der skriptecke auch leider nicht gelingt.
ich habe versucht einen vektor zu erstellen der die lösungen beinhaltet aber wie gesagt bekomme ich es nicht hin die excel-dateinamen zu iterieren. was ich nun mit viel schreibarbeit von hand gemacht habe, müsste aber theoretisch auch von matlab durchführbar sein da es eigentlich eine sehr einfache operation ist. hier mal ein ausschnitt:
P72 = xlsread('72_2006.xls', 4, 'D2');
P73 = xlsread('73_2006.xls', 4, 'D2');
P74 = xlsread('74_2006.xls', 4, 'D2');
P75 = xlsread('75_2006.xls', 4, 'D2');
P76 = xlsread('81_2006.xls', 4, 'D2'); ... usw. für viele dateien.
aus einer masse von messergebnissen sollen halt aus diesen dateien die ergiebigsten herausgesucht werden... sprich, ich muss die ca. 10 höchsten Pxx werte extrahieren. und dann aus diesen excel-dokumenten wieder andere dinge auslesen was dann mit einem solchen befehl machbar sein sollte.
nun, danke erstmal für die hilfe, ich werde dann so mal weiterschauen ob ich das hinbekomme (andererseits bin ich dann wohl schneller wenn ichs von hand mache ). wenn jemand den befehl allerdings parat hat und hier hinschreiben kann hätte ich auch nix dagegen.
vielen dank
gruß
|
|
|
Phate |

Forum-Guru
|
 |
Beiträge: 283
|
 |
|
 |
Anmeldedatum: 09.11.09
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: R2008b
|
 |
|
|
 |
|
Verfasst am: 21.09.2010, 15:20
Titel:
|
 |
HI,
meinst du so?
in daten stehn jetzt die ganzen Namen der Exceldateien von 1_2006.xls bis 100_2006.xls. Gibt vl. noch schönere Varianten die schneller sind sichelrich sinnvoll wenn viele dateien öffnen musst.
Grüße
|
|
|
Sco |

Forum-Meister
|
 |
Beiträge: 699
|
 |
|
 |
Anmeldedatum: 15.08.10
|
 |
|
 |
Wohnort: Dundee
|
 |
|
 |
Version: 2008a, 2010a
|
 |
|
|
 |
|
Verfasst am: 21.09.2010, 16:52
Titel:
|
 |
Hallo Dominik,
damit du nicht weiter diese Schildbürger treiben musst, habe ich mal ein Script entwickelt, welche innerhalb eines Verzeichnisses alle Excelfiles sucht und diese einliest. Bitteschön:
Denke das sollte deine Arbeit ein wenig erleichtern .
MFG
Sco
|
|
|
Dominik |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.09.2010, 12:27
Titel:
|
 |
hey vielen dank euch beiden. ich schaue mal wie ich damit klar komme ist ja im endeffekt doch komplexer als ich dachte. muss ich mich wohl noch ne zeit mit matlab beschäftigen damit ich sowas selbst schreiben kann...
dankeschön, bei weiteren fragen meld ich mich gern
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|