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

Variation des Dateipfades beim xlsread Befehl

 

ZaZuu

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.04.2013, 17:47     Titel: Variation des Dateipfades beim xlsread Befehl
  Antworten mit Zitat      
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.

Download
 Dateiname:  Bsp.m
 Dateigröße:  113 Bytes
 Heruntergeladen:  217 mal


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.04.2013, 20:25     Titel:
  Antworten mit Zitat      
Hallo,

wenn, dann so:

Code:
for i=1:17
 [str]=sprintf('ID_%d',i);

 Druck_Xbear_(i,:) = xlsread (['....\ID Druckseite\' str],'A1:A115');
end


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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.04.2013, 09:32     Titel:
  Antworten mit Zitat      
Hallo Harald,

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).

Schöne Güße
ZaZuu
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 30.04.2013, 11:36     Titel:
  Antworten mit Zitat      
Hallo ZaZuu,

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
Private Nachricht senden Benutzer-Profile anzeigen
 
ZaZuu

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.04.2013, 13:06     Titel:
  Antworten mit Zitat      
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.

Code:

>> Einlesen
Error: File: Einlesen.m Line: 16 Column: 86
Unexpected MATLAB expression.
 



Güße
ZaZuu
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.04.2013, 20:25     Titel:
  Antworten mit Zitat      
Hallo,

an meinem Code sehe ich keine Probleme und ebensowenig der MATLAB Editor. Bitte poste die Code-Zeilen in der Form, wie du sie verwendest.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 01.05.2013, 22:01     Titel:
  Antworten mit Zitat      
Hallo ZaZuu,

Und was steht in Einlesen.m in der 16. Zeile und der 86.sten Spalte?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
ZaZuu

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.05.2013, 09:34     Titel:
  Antworten mit Zitat      
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.

Dies ist der ganze Funktionscode:
Code:
function [Druck_Xbear, Druck_Ybear, Druck_Zbear,Saug_Xbear,Saug_Ybear,Saug_Zbear ]= Einlesen(~)

global Druck_Xbear
global Druck_Ybear
global Druck_Zbear

global Saug_Xbear
global Saug_Ybear
global Saug_Zbear


for i=0:17
    [str]=sprintf('ID_%d',i);
    Druck_Xbear_(i,:) = xlsread (['Z:\Bacheloarbeit\Rotor\Koordinaten\ID Druckseite\'str],'A1:A115');
    Druck_Ybear_(i) = xlsread ('Z:\Bacheloarbeit\Rotor\Koordinaten\ID Druckseite\ID''str',1,'B1:B115');
    Druck_Zbear_(i) = xlsread ('Z:\Bacheloarbeit\Rotor\Koordinaten\ID Druckseite\ID''str',1,'C1:C115');
end
end
 



Ich hoffe das kann helfen.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.05.2013, 11:41     Titel:
  Antworten mit Zitat      
Hallo,

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.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 02.05.2013, 11:49     Titel:
  Antworten mit Zitat      
Hallo ZaZuu,

Ich frage nochmal: Welches ist die Zeile 14?
Die Antwort könnte so einfach sein, wenn wir nur wüssten, wo das Problem liegt.

In dem geposteten Code ist die die 14. Zeile:
Code:
[str]=sprintf('ID_%d',i);

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:
Code:
   Druck_Xbear_(i,:) = xlsread (['Z:\Bacheloarbeit\Rotor\Koordinaten\ID Druckseite\'str],'A1:A115');

Hier würde ich ein Komma oder zumindest ein Leerzeichen einfügen:
Code:
... \ID Druckseite\', str], ...

Die andere Methode mach wahrscheinlich auch nicht, was du möchtest:
Code:
... \Koordinaten\ID Druckseite\ID''str' ...

Dies fügt ein einzelnes Quote-Zeichen ein:
Code:
disp(['asd''bsd']);

Auch hier benötigt man also ein Leerzeichen oder Komma als Separator, wobei Kommas immer besser zu sehen sind:
Code:
disp(['asd', 'bsd']);

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
Private Nachricht senden Benutzer-Profile anzeigen
 
ZaZuu

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.05.2013, 15:56     Titel:
  Antworten mit Zitat      
Hallo Jan und Harald,

danke für euer Bemühen ich hab's jetzt.
Hier ist die endgültige Lösung:

Code:

...\ID Druckseite\', str],'A1:A115');
 


Grüße

ZaZuu
 
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.