如何使用MATLAB将若干个同名csv文件汇总为一个csv文件?
需求:在处理实验数据时,我们会经常遇到要将很多个同名的csv文件汇总到一个csv文件里。
本文的例子
有这么5个文件夹:
它们是命名方式就是1、2、3、4、5,如果不是,可以把你的文件夹名称按顺序改为这个。
每个文件夹里的文件为:
这是实验保存后的名称,你也可以按照你的需求来保存。
我们现在要做的就是把这5个文件夹里的所有同名文件首尾相接汇总到一个CSV文件里。
汇总之后的结果为:
文中代码均采用MATLAB编写。
废话不多说,直接上代码。
clc
clear
for i=1:2:15 %步长为2
bb = []; %储存汇总csv的数组
FileName=[num2str(i),'.csv']; %文件名
for j=1:5 %文件夹,步长取1
PathName = ['路径名',num2str(j),'\']; %num2str(j)是将数值转换为字符串
data_fname = strcat(PathName,FileName);%stract连接字符串
aa = csvread(data_fname); %读取csv文件
bb = [bb,aa']; %将每个CSV文件写入一个数组
fprintf('现在是第 %d 次读取 %s,读取 %s 文件\n',(j),FileName,data_fname) %输出读取的次数
end
path = '汇总文件保存路径';%下面的if语句是判断路径是否存在,如果不存在,则创建该文件夹
if exist(path) == 0
mkdir(path); %创建文件夹
else
disp('folder aready exists');
end
save_path = [path,'\',num2str(i),'.csv'];
bb = bb'; %将数组转置为列
writematrix(bb,save_path); %保存汇总的csv文件
end
fprintf('merge ok\n')
其中
mkdir(path)
创建文件夹
num2str(j)
将数值转换为字符串