Matlab перебирает файлы, не объединяющие CSV - PullRequest
0 голосов
/ 04 марта 2019

Извините, это похоже на " Циклический просмотр файлов в папке в Matlab ", где я получил часть кода, но столкнулся с проблемой с этим кодом.

Iу меня есть много CSV-файлов, которые мне нужно зациклить и объединить в одну длинную CSV / матрицу для анализа, и поэтому я использую код

files = dir('*.csv'); % Get all input files

for file=files' % loop over files
    csv = csvread(file.name); %get data points
    signal = csv(:,2);
end

Проблема, которую я обнаружил, заключается в том, что это только кажется, занимаетданные из первого файла.Например, если:
file1 = [1 2 3]; file2 = [4 5 6];

Я получаю сигнал = 1 2 3, а не 1 2 3 4 5 6.

Итак, цикл как будто не движетсяс первого файла, но я думал, что цикл for был вынужден двигаться дальше, отсюда мое замешательство.

TIA

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Вам просто нужно перебрать файлы struct

files = dir('*.csv'); % Get all input files
N = numel( files );
signal = cell( N, 1 ); % preallocate output

for ifile = 1:N % loop over files
    csv = csvread( file(ifile).name ); % get data points
    signal{ifile} = csv(:,2);          % store output
end

Тогда вы можете объединить все результаты, если хотите работать с ними как один

signal = vertcat( signal{:} );
0 голосов
/ 04 марта 2019

Я попал туда в конце

files = dir('*.csv'); % Get all input files
L = length(files);

csv = csvread(files(1).name);
signal = csv(:,2);

for i = 2:L
   csv = csvread(files(i).name);
   %Did stuff with code
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...