web-dev-qa-db-fra.com

Boucle à travers les fichiers dans un dossier dans Matlab

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?

51
Fantastic Mr Fox

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
88
Isaac

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é. 

2
PyMatFlow