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

Dateien aus verschiedenen Ordnern aufrufen und einlesen

 

PAler
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 03.12.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.12.2015, 13:25     Titel: Dateien aus verschiedenen Ordnern aufrufen und einlesen
  Antworten mit Zitat      
Hallo Matlabgemeinde,
im Zuge meiner Projektarbeit muss ich den Import mehrerer Dateien möglichst einfach gestalten. Die nötigen Dateien sind in verschiedenen Ordnern abgespeichert:
z.B. \Proband1
\Proband2
\Proband3 usw.
In jedem Ordner finden sich etwa 6 txt.files. Hierzu muss ich ein Auswerteprogramm schreiben, welches - wenn es fertig ist - für etwa 30 Probanden pro Proband Mittelwert und ein Integral ausgeben soll. Es soll nur einmal gestartet werden und letztlich ein txt.-File mit den Probandendaten zur Verfügung stellen.
Das Problem hierbei ist der Zugriff mit einer for-Schleife auf die verschiedenen Ordner, ohne jeden per Hand auszuwählen.

Falls jmd eine Idee hat, die mir weiterhelfen könnte, wäre ich sehr dankbar.
Mit freundlichen Grüßen,
PAler
Private Nachricht senden Benutzer-Profile anzeigen


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 03.12.2015, 22:18     Titel:
  Antworten mit Zitat      
Im, dem Probandenordnern übergeordneten, Ordner mittels
Code:

einfach alle Ordnernamen einlesen und über diese per schleife arbeiten. Eben Ordner öffnen, alle txt einlesen, bearbeiten, etc.
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
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: 04.12.2015, 11:20     Titel: Re: Dateien aus verschiedenen Ordnern aufrufen und einlesen
  Antworten mit Zitat      
Hallo PAler,

Welches konkrete Problem hast Du? Kannst Du den bisherigen Code posten und erklären, was nicht wie gewünscht läuft?
Welches Muster haben die gewünschten Ordner? Wie wäre dies:
Code:
FolderList = dir(fullfile(BasePath, 'Probanden*'));
FolderList = FolderList([Folderlist.isdir]);
for iFolder = 1:numel(FolderList)
  aFolder = fullfile(BasePath, FolderList(iFolder).name);
  ...
end

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

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 03.12.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.12.2015, 13:10     Titel:
  Antworten mit Zitat      
Danke für die schnellen Antworten,
die Ordernstuktur ist ein Ordner "Test", in dem befinden sich drei Probanden-Ordner, welche jeweils 3 txt-Files beinhalten.

Mein bisheriger Code zu Beginn des Skriptes lautet folgendermaßen:
Code:
FolderList = dir(fullfile('G:','Projektarbeit','Test','Proband*'));
c = struct2cell(FolderList)
c=c(1,:)
for i = 1:length(c)
  A(i)= dir(fullfile('G:','Projektarbeit','Test', c(i)));
end


Damit erhalte ich im Workspace c mit dem Inhalt (Proband1,Proband2,Proband3).
Jedoch scheitere ich an dem Auslesen in der for-Schleife an der Abhängigkeit von der Zählvariable.
Ich denke, die Elemente in c haben dafür das falsche Format, kann es aber nicht lösen.
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: 08.12.2015, 14:54     Titel:
  Antworten mit Zitat      
Hallo PAler,

Du solltest eine Fehlermeldung bekommen, da "c" ein Cell String ist und "c(i)" damit auch. Verwende "c{i}" mit geschweiften Klammern, um den Inhalt des Cell-Strings zu bekommen.
Allerdings ist struct2cell keine zuverlässige Methiode hier, denn es ist nicht dokumentiert, dass den Name wirklich das erste Feld ist. Besser:
Code:
FolderList = dir(fullfile('G:','Projektarbeit','Test','Proband*'));
FolderName = {FolderList.name};
for i = 1:length(FolderName)
  A = dir(fullfile('G:','Projektarbeit','Test', FolderName{i}));
end

Nun weist Du die Ausgabe von dir der Variablen "A(i)" zu. Hier wären wieder geschweifte Klammern wohl besser:
Code:
A ) cell(1, length(FolderName));
for i = 1:length(FolderName)
  A{i} = dir(fullfile('G:','Projektarbeit','Test', FolderName{i}));
end

Aber vielleicht musst Du die Ausgabe auch gar nicht speichern.

Wenn Du Fehlermeldungen zu Deinem Code erhältst, poste sie immer vollständig im Forum.

Gruß, Jan
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 - 2024 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.