J'ai une série de jours de fichiers journaux que je dois analyser et examiner dans Matlab.
Les fichiers de log ressemblent à ceci:
LOG_20120509_120002_002.csv
(year)(month)(day)_(hour)(minute)(second)_(log part number)
Les journaux incrémentent toutes les heures, mais parfois les secondes sont à une ou deux secondes (ce qui signifie que je dois ignorer ce qu’elles disent de faire loadcsv
.
J'ai aussi un autre fichier:
LOG_DATA_20120509_120002.csv
qui contient des données pour toute l’heure (données différentes).
L'objectif général est de:
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
Je suppose que la question est alors, comment puis-je ignorer les minutes de la journée si elles sont différentes? Je suppose que ce sera en parcourant tous les fichiers du dossier. Dans ce cas, comment puis-je le faire?
Faire une boucle dans tous les fichiers du dossier est relativement facile:
files = dir('*.csv');
for file = files'
csv = load(file.name);
% Do some stuff
end
Au début, vous devez spécifier votre chemin, le chemin dans lequel se trouvent vos fichiers *.csv
path = 'f:\project\dataset'
Vous pouvez le changer en fonction de votre système.
puis,
utilisez la fonction 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
peut également être utilisé.