Do anyone know how to merge several (80-90) csv file data into 1 file?

2 views (last 30 days)
I have to merge data from several csv files into one csv file and find the maximum value of each column.
How shall I do it?

Accepted Answer

Argon
Argon on 1 Nov 2012
Edited: Argon on 1 Nov 2012
Assuming that all files have the same columns I'd do something like this:
  • where ncols is number of columns
  • preallocate max value variable: m = zeros(1, ncols);
  • loop over all files
  • read csv data using csvread into variable data
  • m = max(max(data), m);
  • end loop
m of course is your result.
  5 Comments
Argon
Argon on 1 Nov 2012
There is not "one" function that does that as far as I know -- you will probably have to iterate over all your files and use csvread and write them to disk again, something like this:
files = {'file1.csv', 'file2.csv'};
cellfun(@(x) dlmwrite('output.csv', csvread(x), '-append'), files);
Though you might have to tweak that a bit, it hasn't been tested.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!