|
|
Mit Matlab mehrere Excel-Sheets auf einmal aufrufen. |
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.06.2010, 11:11
Titel: Mit Matlab mehrere Excel-Sheets auf einmal aufrufen.
|
 |
Hallo! Ich hoffe ihr könnt mir bei folgendem Problem helfen.
Ich habe ein Matlab-Code in dem ein Excel-Sheet aufgerufen wird und die Daten in einer Formel benutzt werden. Das mache ich mit:
a=xlsread('Dateriname.xls', sheet);
Falls ich ein anderes Sheet brauche gebe ich die entsprechende Zahl ein.
Nun aber habe ich eine Excel Datei mit X-beliebigen Sheets und ich möchte alle Sheets abrufen?!?! Kann ich dabei für 'sheet' eine Variable angeben, dh:
for anzahl 'i' in Excel; % schleife soll enden, wenn alle i (anzahl der sheets) abgerufen
a=xlsread('Dateriname.xls', 'i' );
....
end;
hoffe ich konnt e mich ausdrücken:)
danke im vorraus!!!
|
|
|
|
|
ISI-Praktikant |

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 09.11.09
|
 |
|
 |
Wohnort: Karlsruhe
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.06.2010, 09:49
Titel:
|
 |
Hallo auch von meiner Seite,
ich habe ein ganz ähnliches Problem.
Ich möchte eine Reihe von Exceldateien über eine for-Schleife in MatLab laden, die Dateien unterscheiden sich lediglich durch eine Ziffer.
Datei 1
Datei 2
Datei 3
usw.
einlesen tue ich über den Befehl:
und bis hier hin funktioniert es auch noch ganz gut.
Jetzt aber zur Schleife,
dies ist mein Ansatz:
Ich denke es sind zwei Dinge die nicht funktionieren, wie füge ich die Laufvariable der Scheife mit in meinen String ein?
Und wie speicher ich das in einem Arry ab. Alternativ muss es auch kein Arry sein sondern könnte immer wieder eine neue Variable sein (Data1, Data2, Data3, ...)
auch ich hoffe wie "Gast" auf Hilfe,
vielen Dank im vorraus.
|
|
|
Fourier |

Forum-Guru
|
 |
Beiträge: 329
|
 |
|
 |
Anmeldedatum: 05.04.10
|
 |
|
 |
Wohnort: Karlsruhe
|
 |
|
 |
Version: 2009b
|
 |
|
|
 |
|
Verfasst am: 15.06.2010, 10:15
Titel:
|
 |
Hallo Gast,
das kannst du natürlich schon machen. wenn die dimentionen in den verschiedenen sheets gleich sind dann geht so z.b:
ansonsten:
in a{1},a{2} sind dann deine daten...
gruss
|
|
|
Fourier |

Forum-Guru
|
 |
Beiträge: 329
|
 |
|
 |
Anmeldedatum: 05.04.10
|
 |
|
 |
Wohnort: Karlsruhe
|
 |
|
 |
Version: 2009b
|
 |
|
|
 |
|
Verfasst am: 15.06.2010, 10:22
Titel:
|
 |
hi ISI-Praktikant
mir fällt das hier ein:
|
|
|
LittleX |

Forum-Guru
|
 |
Beiträge: 494
|
 |
|
 |
Anmeldedatum: 14.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.06.2010, 10:33
Titel:
|
 |
Hallo,
noch eine kleine Anmerkung: wenn Du wissen willst, wieviele Sheets überhaupt in der Datei sind, kannst Du folgendes machen:
desc enthält dann die Namen der Arbeitsblätter.
Viele Grüße,
LittleX
|
|
|
ISI-Praktikant |

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 09.11.09
|
 |
|
 |
Wohnort: Karlsruhe
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.06.2010, 11:03
Titel:
|
 |
Hallo jawad1908,
das war genau das was ich gesucht habe,
Besten Dank!
"num2str" ist sehr hilfreich, der Code macht genau das was ich möchte, deine erste Anwort für Gast hat mich auch auf die Idee gebracht alle Daten in unterschiedlichen Sheeds zuspeichern und nicht in immer neuen Dateien.
Das macht den "currend Folder" deutlich übersichtlicher.
auch Dank an LittleX,
vielleicht wird es noch wichtig dem Programm sagen zukönnen wieviele Sheeds man überhaupt hat.
Viele Grüße aus Karlsruhe
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.06.2010, 09:07
Titel:
|
 |
Hallo, danke erstmal für die antworten.
@littlex, das hat prima geklappt...
nur habe ich folgendes problem:
ich lese aus einem sheet einen bestimmten range aus. dafür gebe ich folgendes ein
data =xlsread('filename.xls', 1, 'A1:D56566');
So, jetzt habe ich aber eine unbekannte Zeilenanzahl. Wie kann ich die Zahl 56566 (habe ich eingegeben das sicherheitshalber alles ausgelesen wird) ersetzen, damit da ne Variable steht und der automatisch mir bis zu letzten Zeile ausließt??
|
|
|
LittleX |

Forum-Guru
|
 |
Beiträge: 494
|
 |
|
 |
Anmeldedatum: 14.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.06.2010, 10:28
Titel:
|
 |
Hallo,
wenn Du den Range weglässt, wird das ganze Arbeitsblatt eingelesen.
Viele Grüße,
LittleX
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.06.2010, 10:52
Titel:
|
 |
Das soll es in dem Fall auch nicht, das ges Arbeitsblatt einlesen.
Statt zB A1:D56566, nur A1:D500, da nur insg 500 Zeilen enthalten sind?!?
oder anderes bsp: statt X40:X56566, nur X40:X(end), da die gewünschten Daten in Zeile 40 bis 'end' enthalten sind?!?
Danke im vorraus!
|
|
|
Fourier |

Forum-Guru
|
 |
Beiträge: 329
|
 |
|
 |
Anmeldedatum: 05.04.10
|
 |
|
 |
Wohnort: Karlsruhe
|
 |
|
 |
Version: 2009b
|
 |
|
|
 |
|
Verfasst am: 23.06.2010, 11:23
Titel:
|
 |
Hi,
so vielleicht?
_________________
Ein schlechter General ist besser als zwei gute.
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.06.2010, 12:57
Titel:
|
 |
hi, nicht ganz...
data =xlsread('filename.xls', 1, 'A1:D_unbekannt') dh, matlab soll selbst schauen, wieviele Zeilen vorhanden sind?!!? und diese Zahl bei unbekannt einsetzen...
|
|
|
Fourier |

Forum-Guru
|
 |
Beiträge: 329
|
 |
|
 |
Anmeldedatum: 05.04.10
|
 |
|
 |
Wohnort: Karlsruhe
|
 |
|
 |
Version: 2009b
|
 |
|
|
 |
|
Verfasst am: 23.06.2010, 13:22
Titel:
|
 |
wenn die anzahl der zeilen die gelesen werden müssen von irgendwas abhängt, dann ist die variante die ich dir gezeigt habe eine lösung.
und wenn matlab sowieso alle vorhandenen zeilen lesen soll, dann machst du wie LittleX sagte, range gar nicht mal angeben.
oder verstehe ich irgendwas falsch??
_________________
Ein schlechter General ist besser als zwei gute.
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.06.2010, 15:36
Titel:
|
 |
beides stimmt keine Frage, ich glaube ich konnte mich nicht ausdrücken.
Also, die Daten die ich aus Excel brauche seien in den Spalten B bis F, beginnend in der Zeile 10. Angenommen es existieren 20 Zeilen, dann würde ich schreiben:
data =xlsread('filename.xls', 1, 'B10:F30'); oder?
So, nun möchte ich aber keine fixe Zeilenzahl angeben (30), sondern der soll mir bis zur letzten Zeile(das könnte auch F11 oder aber auch F356 sein) die Werte auslesen!?!
|
|
|
LittleX |

Forum-Guru
|
 |
Beiträge: 494
|
 |
|
 |
Anmeldedatum: 14.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.06.2010, 17:09
Titel:
|
 |
Hallo,
einen direkten Weg wüsste ich nicht.
Entweder liest Du die gewüschten Spalten komplett ein und kürzt sie in MATLAB:
Oder Du vergnügst Dich mit activeX (ziemlich viel Aufwand für eine Zahl):
Viele Grüße,
LittleX
|
|
|
NickNack |

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 19.03.16
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.03.2016, 18:33
Titel: Ähnliches Problem mit Einlesen von Excelfiles
|
 |
|
 |
|
Hallo Leute,
ich habe als relativ frisch gebackener Matlab-Neuling ein Problem, bei dem ich nicht so richtig voran komme. Ich habe schon einige verwandte Themen gelesen, aber für meinen konkreten Fall konnte ich mir noch keine Lösung zusammenbasteln.
Folgendes ist meine Ausgangssituation:
Ich habe einige Excel-Files mit fortlaufender Nummerierung, z.B.:
File1: 1_Restlicher_Name
File2: 2_Restlicher_Name
.
.
.
Jede einzelne dieser Files ist immer exakt gleich aufgebaut und enthält immer gleich viele Sheets.
Mich interessieren nun die Daten einer jeder File, die immer ab dem 2. Sheet in allen folgenden Sheets immer in den gleichen 2 Zeilen der Sheets stehen. Die Daten sollten nach Möglichkeit gespeichert werden, sodass ich sie im weiteren Verlauf des Programms verarbeiten kann.
Habt ihr Ideen oder Anregungen, wie ich vorgehen könnte um die Sheets auch auszulesen?
Ein Weiteres Problem ist, dass ich A im Workspace nicht anschauen kann, wegen folgender Fehlermeldung: Cannot display summaries of variables with more than 524288 elements.
Mein Ansatz um die Files einzulesen ist der von Fourier:
Gruß
NickNack
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
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.
|
|