Вопрос по matlab, loops, file-io, csv – Прокручивать файлы в папке в Matlab

54

У меня есть несколько дней файлов журналов, которые мне нужно проанализировать и просмотреть в matlab.

Файлы журнала выглядят так:

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

Журналы увеличиваются ежечасно, но иногда секунды отключаются на одну или две секунды (в час), что означает, что мне нужно игнорировать то, что они говорят делатьloadcsv.

У меня также есть другой файл:

LOG_DATA_20120509_120002.csv

который содержит данные за весь час (разные данные).

Общая цель:

 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

Я думаю, что вопрос в том, как я могу игнорировать минуты дня, если они разные? Я подозреваю, что это будет, просматривая все файлы в папке, и в таком случае, как мне это сделать?

Ваш Ответ

2   ответа
2

Во-первых, вы должны указать свой путь, путь, который ваш*.csv файлы там

path = 'f:\project\dataset'

Вы можете изменить его в зависимости от вашей системы.

затем,

использование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 также можно использовать

Вместоstrcatиспользоватьfullfile: dir(fullfile(path,'*.csv')), Смотрите документацию:mathworks.com/help/matlab/ref/fullfile.html
89

Перебирать все файлы в папке относительно просто:

files = dir('*.csv');
for file = files'
    csv = load(file.name);
    % Do some stuff
end
@vigamage, вы нацеливаетесь на текущий каталог? Или вы используетеdir('some/path/*.csv')?
@ Исаак Имейте в виду, чтоload Предназначен для использования только с файлами, содержащими переменные MATLAB, поэтому, даже если он будет работать с полностью числовыми CSV-файлами, если строка заголовка содержит имена переменных или данные более сложные, лучше использоватьtextscan или жеcsvread.
ммм это не работает для меня ... файл = файлы просто копирует файлы в файл :(
Когда я делаю это, я получаю сообщение об ошибкеUnable to read file 'abcdef.csv' : ': no such file or directory. это почему?
Пытатьсяfile = files'; может потребоваться, чтобыfiles это массив строк

Похожие вопросы