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?
Das Durchlaufen aller Dateien im Ordner ist relativ einfach:
files = dir('*.csv');
for file = files'
csv = load(file.name);
% Do some stuff
end
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.