2017-01-23 2 views
-1

ich mehrere Dateien aus einem Ordner lesen will, aber dieser Code funktioniert nicht richtig:lesen mehrere Datei aus dem Ordner

direction=dir('data'); 

    for i=3:length(direction) 

     Fold_name=strcat('data\',direction(i).name); 

      filename = fullfile(Fold_name); 
      fileid= fopen(filename); 
      data = fread (fileid)'; 
    end 
+0

Was schief geht? – doctorlove

+0

Liest nicht alle Dateien, ich kann nur die letzte Datei nach dem Lesen bekommen – lighting

+1

@lighting das ist, weil ich nehme an, es überschreibt nur die 'data' Variable bei jeder Iteration – grooveplex

Antwort

0

Bei den Dateien Zugriff auf alle immer nach dem Lesen.

direction=dir('data'); 

     for i=3:length(direction) 

      Fold_name=strcat('data\',direction(i).name); 

       filename = fullfile(Fold_name); 
       fileid(i)= fopen(filename); 
       data{i-2} = fread (fileid(i))'; 
     end 
0

I modifizierte Ihren Algorithmus, um es

einfach dieses Formular leichter zu machen verwenden:

folder = 'Adresse \ data \' (geben Sie Ihre Ordner-Adresse in dem Daten befindet)

dann: Dateinamen = dir; ([Ordner '* .txt.']) (Was auch immer Ihr Datenformat ist, können Sie es für den Fall, geben Sie haben andere Dateien, die Sie nicht wollen, in diesem Beispiel importieren, i verwendet .txt-Dateien)

für k = 1: numel (Dateinamen)

Sie Ihren Code

Ende

Es sollte funktionieren. Dies ist eine viel effizientere Methode, da sie auf jeden Ordner angewendet werden kann, ohne dass Sie sich Gedanken über Namen, Nummernreihenfolge usw. machen müssen. Es sei denn, Sie möchten bestimmte Dateien mit demselben Format innerhalb des Ordners angeben. Ich würde Ihnen empfehlen, einen eigenen Ordner zu verwenden, um Ihre Dateien in setzen

+0

Wenn ich versuche, 'fileid = fopen (Dateinamen) zu verwenden; data = fread (Datei-ID) '; 'in dieser Schleife bekomme ich diesen Fehler" Fehler bei der Verwendung von fopen. Erste Eingabe muss ein Dateiname des Typs char oder eine Dateikennung des Typs double sein. " – lighting

+0

@Patrick, Sie müssen angeben, welche Datei Sie in jeder Iteration bearbeiten. – Adiel

Verwandte Themen