抱歉,这与“ Loop through files in a folder in matlab”相似,在这里我已经获得了一些代码,但是我遇到了与此代码有关的问题。
我有很多csv文件,我需要循环并组合成一个长的csv / matrix进行分析,因此我正在使用代码
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 56。
因此,好像循环没有从第一个文件继续进行,但是我认为for循环被迫继续进行,因此感到困惑。
TIA
答案 0 :(得分:2)
您只需要遍历文件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{:} );
答案 1 :(得分:0)
我到底到了那里
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