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

Einlesen mehrerer Dateien mit For-Schleife

 

Univac
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 09.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.06.2016, 14:58     Titel: Einlesen mehrerer Dateien mit For-Schleife
  Antworten mit Zitat      
Hey liebe Community,

ich bin immer mal wieder mit Matlab beschäftigt und will derzeit damit eine Auswertung einer größeren Messreihe machen. Das Problem: Die Messdaten liegen als .csv vor und müssen erst einmal Stückweise bearbeitet werden.

Ich wollte dazu in einer for-Schleife Daten einlesen und dann bearbeiten und nach Abschluss aller Schritte speichern. Leider funktioniert mein Skript mangels Wissen der Befehle nicht. Vielleicht kann mir jemand von Euch etwas Hilfestellung geben:

Es handelt sich um eine Reihe von Dateien mit dem Namen Blub000....bis Blub200, also bleibt der Name gleich, lediglich die letzten drei Ziffern ändern sich der Reihenfolge entsprechend:

Grundsätzlich war Das die Idee:
Code:

n =input('Name: ');
for i=1:input('Anzahl der Dateien: ')

dlmread(n+i+'.csv', del, c,r) %das geht doch sicher nicht so, oder?
 


Wäre super, wenn sich jemand meines Problemes annehmen könnte.

Mit lieben Grüßen,
Univac.
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: 09.06.2016, 21:47     Titel: Re: Einlesen mehrerer Dateien mit For-Schleife
  Antworten mit Zitat      
Hallo Univac,

Kennst Du die FAQ zu Matlab?
http://matlab.wikia.com/wiki/FAQ
Dort findest Du etwas dazu, wie man eine Sequenz von Files bearbeitet. Die anderen Tipps dort sind aber auch wertvoll!

n = input('Name') liefert eine Zahl zurück. Du bräuchtest noch 's' als Argument für einen String. Siehe "help input".

Code:

Name = 'Blubb';
nFile = input('Anzahl der Dateien: ');
Folder = cd;
for iFile = 1:nFile
  File = fullfile(Folder, sprintf('%s%03d.cvs', Name, iFile));
  Data = dlmread(File, del, c,r);
  ...
end

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Univac
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 09.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.06.2016, 14:09     Titel:
  Antworten mit Zitat      
Hallo Jan,

vielen Dank für Deine Nachricht. Ich hatte mir das Programm nur etwas anders vorgestellt und scheitere gerade am Verständnis:

Mein Programm war folgendermaßen aufgebaut:
Code:

Anzahl = input('Anzahl der Dateien: ');
M = zeros(Anzahl);
n=0;

for k = 1:Anzahl
   n=n+1;
    M = dlmread(('SCHEIBE00'+num2str(n)+'.csv') , ',' , 17 , 0);
end
 


Angenommen, ich habe jetzt drei Dateien; es scheitert wohl sicher an meiner Formulierung, aber ich weiß, dass es in dieser Form auch funktionieren müsste, weil es schon mal geklappt hat. Ich habe nur idiotischer Weise das Programm nicht mehr, in dem ich es funktionstüchtig hatte laufen lassen können. Was muss ich ändern, damit die Deklaration von M in der for-Schleife korrekt ist? Ich weiß nicht genau, wie ich den Namen der Dateien (Hier halt "SCHEIBE001.csv") richtig zusammensetze.
Private Nachricht senden Benutzer-Profile anzeigen
 
Univac
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 09.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.06.2016, 14:16     Titel:
  Antworten mit Zitat      
Hat sich wohl gerade erledigt;

Habe das Programm folgendermaßen noch geändert:

Code:

for k = 1:Anzahl
   M = dlmread(['SCHEIBE00' num2str(k) '.csv'] , ',' , 17 , 0);
end
 


Und schon lädt er die richtige Datei. Ist jetzt nur im falschen Ordner, aber das ist ja kein wirkliches Problem.

Tausend Dank für Eure Hilfe Smile,
Philipp.
Private Nachricht senden Benutzer-Profile anzeigen
 
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.