如何用Matlab批量读取Excel 表格 .csv .xlsx .xls格式文件并整合成一个.mat格式文件保存

一个文件夹有三百多多个.csv格式的表格,我需要读取所有的表格,提取每一个表格的第7列,然后将所有表格的第七列的数据依次排列整合在一个表格中。

下图为处理前的文件的一部分

如何用Matlab批量读取Excel 表格 .csv .xlsx .xls格式文件并整合成一个.mat格式文件保存_第1张图片

下面是实现这些功能的Matlab代码。我用的Matlab版本是2020版的。有些代码需要根据自己实际的需要进行更改,比如如果你读取的文件格式是.xls就可以把第五行的.csv改成.xls。或者你希望输出文件名称为别的名字,你可以把代码中所有的C4都换掉。或者你不需要只保留第七列的数据,你要保留所有的数据,就可以把相关的代码删掉后运行

clear;
close all;
clc;

Files=dir('*.csv'); %读取当前文件夹里所有.csv的文件,且把文件名按顺序读取在Files中

n=length(Files); %n表示Files中有多少个文件
x=Files(1).name; %x表示Files中的第一个文件的名字
z=importdata(x); %读取第一个.csv文件且命名为z
z=z(:,6);%因为只需要第七列的数据,所以用这行代码把z变成只有第七列数据的表格
C4=z;%让C4和z相等,z会不断变化,C4是最终文件
for i=1:n-1
    
    x=Files(i+1).name; %依次读取后面Files的每个名字 
    z=importdata(x); %依次读取文件夹中.csv的文件
    z=z(:,6); %从z中提取我所需要的第7列的数据
    C4=[C4;z];% 把z那列的数据接在C4那列的下面
    
    %下面两行代码用于在命令窗口显示代码运行的进度,因为有时候文件太多处理的时间长,这个可以不要
    Dis=strcat('当前进度 ',int2str(i/n*100),'%');
    disp(Dis)
    
    %循环这个步骤直到所有的.csv文件都集成在C4中
end

save C4 %保存C4为C4.mat到当前文件夹

下面是最后生成的.mat格式文件,这个文件整合了所有的数据,有七千多万行…
C4mat文件

你可能感兴趣的:(matlab,matlab,csv,excel)