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

1 回表示 (過去 30 日間)
DEYIRE UMAR
DEYIRE UMAR 2018 年 9 月 25 日
コメント済み: Peter Perkins 2018 年 10 月 1 日
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.

回答 (1 件)

Jake Gonzalez
Jake Gonzalez 2018 年 9 月 25 日
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 件のコメント
Jake Gonzalez
Jake Gonzalez 2018 年 9 月 25 日
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 2018 年 10 月 1 日
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{:});

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeEnvironment and Settings についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by