Filter löschen
Filter löschen

How can I merge tables of csv files into one file?

2 Ansichten (letzte 30 Tage)
DEYIRE UMAR am 25 Sep. 2018
Kommentiert: Peter Perkins am 1 Okt. 2018
I obtained data which are stored in 2000 csv files and I need to make(append) them one file. They have same headers for their columns. I attached two of the files. So, data from "log_table_1.csv" is to become the continuation of "log_table_0.csv" and so on until the 2000th one.

Antworten (1)

Jake Gonzalez
Jake Gonzalez am 25 Sep. 2018
Try something like this;
d = table();
fileNames = dir('*.csv');
for ii = 1:numel(fileNames)
d0 = readtable(fileNames(ii).name);
d = [d; d0];
See if that works.
  2 Kommentare
Jake Gonzalez
Jake Gonzalez am 25 Sep. 2018
It's not the most elegant solution, as it will copy the contents of d over again everytime you need to concatenate. Thus, if you know the length of each file (seems to be 798 datapoints per file) then you should pre-allocate d in some way to try and save speed.
Peter Perkins
Peter Perkins am 1 Okt. 2018
Another (faster) possibility is to read each table into a cell of a 2000x1 cell array
cellContainingTables{i} = readtable(...);
and then do this:
t = vertcat(cellContainingTables{:});

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by