Merging multiples csv files in Matlab-R2014b

4 次查看(过去 30 天)
I have 50 csv files without header. Size of each file is 11320x2 with one common column in all files. I would like to merge all of these files in matlab and would like to create a matrix of size (11320x51). Any suggestion is highly appreciated. Thank you!

采纳的回答

Ken Atwell
Ken Atwell 2015-3-11
Assuming the files are all in the same folder and you have 'cd'ed to there, trying something like:
files = dir('*.csv'); % Get list of files
out = csvread(files(1).name); % First file
for ii = 2:numel(files)
new = csvread(files{ii}.name); % Read the nth file
out = horzcat(out, new[:,2]); % Concatenate "out" with the 2nd column from new file
end
This is from memory and may not be exactly right.
  5 个评论
Renjith V Ravi
Renjith V Ravi 2018-1-28
I am also getting the same error message "Unbalanced or unexpected parenthesis or bracket". Tried a lot to correct but couldn't.Please help me
Brendan Hamm
Brendan Hamm 2018-2-9
In MATLAB you cannot index with [] as is done in the last line of the for loop. Change this to () and all will work fine.
files = dir('*.csv'); % Get list of files
out = csvread(files(1).name); % First file
for ii = 2:numel(files)
new = csvread(files{ii}.name); % Read the nth file
out = horzcat(out, new(:,2)); % Concatenate "out" with the 2nd column from new file
end

请先登录,再进行评论。

更多回答(2 个)

Brendan Hamm
Brendan Hamm 2015-3-11
Presumably you would want to use the csvread function. If all of the files are in the same directory, then set that as your working directory. This can be accomplished with
cd [directory]
where [directory] is the full path to your directory.
You can get a list of all of the files in the directory with the dir command.

Siach Xavisu
Siach Xavisu 2016-12-26
You can merge them with relative ease with http://merge-csv.com even if they got headers.

类别

Help CenterFile Exchange 中查找有关 File Operations 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by