web-dev-qa-db-de.com

Durchlaufen Sie Dateien in einem Ordner in matlab

Ich habe eine Reihe von Protokolldateien, die ich in Matlab analysieren und betrachten muss. 

Die Protokolldateien sehen folgendermaßen aus:

LOG_20120509_120002_002.csv
(year)(month)(day)_(hour)(minute)(second)_(log part number)

Die Protokolle werden stündlich erhöht, aber manchmal sind die Sekunden ein oder zwei Sekunden (pro Stunde), was bedeutet, dass ich ignorieren muss, was sie sagen, um loadcsv zu tun.

Ich habe auch eine andere Datei:

LOG_DATA_20120509_120002.csv

welche Daten für die ganze Stunde enthält (verschiedene Daten). 

Das übergeordnete Ziel ist es: 

 loop through each day 
     loop through each hour
         read in LOG_DATA for whole hour
         loop through each segment
             read in LOG for each segment
                 compile a table of all the data

Ich denke, die Frage ist dann, wie ignoriere ich die Minuten des Tages, wenn sie anders sind? Ich habe den Verdacht, dass alle Dateien im Ordner durchlaufen werden. In diesem Fall wie mache ich das?

51

Das Durchlaufen aller Dateien im Ordner ist relativ einfach:

files = dir('*.csv');
for file = files'
    csv = load(file.name);
    % Do some stuff
end
88
Isaac

Zuerst müssen Sie Ihren Pfad angeben, den Pfad, in dem sich Ihre *.csv-Dateien befinden

path = 'f:\project\dataset'

Sie können es basierend auf Ihrem System ändern.

dann,

verwenden Sie die Funktion dir:

files = dir (strcat(path,'\*.csv'))

L = length (files);

for i=1:L
   image{i}=csvread(strcat(path,'\',file(i).name));   
   % process the image in here
end

pwd kann auch verwendet werden. 

2
PyMatFlow