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

1 Ansicht (letzte 30 Tage)
DEYIRE UMAR
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];
end
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.

Kategorien

Mehr zu Environment and Settings finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by