Verfasst am: 29.04.2013, 17:47
Titel: Variation des Dateipfades beim xlsread Befehl
Hallo erstmal,
ich habe heute die meiste Zeit des Tages damit verbracht herauszufinden, wie ich den Dateipfad, den man beim xlsread Befehl verwendet, varieren kann. Ich habe in einer Datei mehere Exceldateine, die ich in Matlab einlesen möchte. Sie untescheiden sich nur von einer fortlaufenden Nummer am Ende. Daher wollte ich eine for-Schleife verwenden. Allerdings habe ich es nicht geschafft diese Nummer zu varieren. In dem Dateipfad erkenn Matlab den String den ich hinten angehängt habe nicht an.
Hier ist einCodeausschnitt:
for i=1:17
[str]=sprintf('ID_%d',i);
Druck_Xbear_(i) = xlsread ('....\ID Druckseite\str','A1:A115');
end
Über eine Lösung würde ich mich sehr freuen.
Bsp.m
Beschreibung:
Ich hoffe der Code kann das Problem etwas deutlicher machen.
danke für deine schnelle Antwort. Leider besteht das Problem immernoch. Matlab gibt mir jetzt die Fehlermeldung raus, dass es eine 'Unexpected Matlab Expression' gibt. xlsread erkennt, wenn ich es richtig deute, den Dateipfad nicht richtig an. Ich hatte mir schon überleget anstatt einer for-Schleife eine case-Anweisung zu schreiben. Das bedeutet zwar mehr Schreibaufwand, sollte aber dann funktionieren. (So viele Dateien sind es zum Glück auch nicht).
Bitte vermeide es, Fehlermeldungen in eigenen Worten nachzuerzählen, sondern poste eine Kopie der vollständigen Meldung. Matlab gibt nämlich üblicherweise Zeile und Spalte von unerwarteten Ausdrücken aus.
Gruß, Jan
ZaZuu
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 30.04.2013, 13:06
Titel:
Hallo Jan,
entschuldigung das wusste ich nicht. Hier ist der Fehlercode, den Matlabe ausgibt.
Allerdings habe ich das Problem jetzt umgangen, indem ich mit einer switch-Schleife jeden Fall einzeln abarbeite.
Hier ist nochmal der Code, falls jemand das Probelm doch noch lösen kann.
Und was steht in Einlesen.m in der 16. Zeile und der 86.sten Spalte?
Gruß, Jan
ZaZuu
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 02.05.2013, 09:34
Titel:
Hallo,
hier ist nochmal der ganze Code. Ich habe ihn etwas verändert, daher tritt der Fehler jetzt in Zeile 14 und Spalte 86 auf. Andieser Stelle steht der String in dem Dateipad. Damit sollen mit der For-Schleife sämtliche Daten in Matlab eingelesen werden. Setzt man die Anführungszeichen hinter das str erkennt Matlab dies nicht als fortlaufende Zahl aus der For-Schleife an. Macht man es so wie in dem untenstehenden Beispiel ergibt sich der Fehler.
Hier ist nochmal der Fehlercode:
Error: File: Einlesen.m Line: 14 Column: 86
Unexpected MATLAB expression.
ja, das hilft. Zwischen das ' und das str muss (wie in meinem Vorschlag) ein Leerzeichen oder ein Komma. Das wird im Editor auch schon rot markiert.
Und die Zeilen 15 und 16 müssen dann natürlich entsprechend der Zeile 14 angepasst werden.
Aus Performancegründen wäre es besser, die drei Spalten auf einmal auszulesen und das danach zu trennen.
Hier kann ich nichts falsches sehen. Die eckigen Klammern um "str" sind zwar überflüssig, aber kein Fehler.
Aber die nächste Zeile könnte Probleme bereiten:
Bitte poste in Zukunft die Fehlermeldung zusammen mit dem relevanten Code-Abschnitt, so dass wir die Details nicht erst suchen müssen. Dann bekommst Du als Gegenleistung die Antworten viel schneller!
Gruß, Jan
ZaZuu
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 02.05.2013, 15:56
Titel:
Hallo Jan und Harald,
danke für euer Bemühen ich hab's jetzt.
Hier ist die endgültige Lösung:
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.