MATLAB-自动批量读取文件,并按文件名称或时间顺序进行数据处理

我在处理文件数据时,发现一个一个文件处理效率太低,因此学习了下MATLAB中自动读取特定路径下文件信息的程序,并根据读取信息使用循环进行数据处理,提高效率,在此分享给大家这段代码并给予一些说明,希望能为大家的数据处理起到一定的帮助。

首先咱们先认识认识以下常用代码:

FilePath = 'C:\Users\Kaero\Documents';   % 自己设置数据存放的文件夹路径
FilePath = uigetdir; % 获取文件夹路径
[Filename,FilePath]=uigetfile; % 获取单个文件的文件名及其路径

FilePath = 'C:\Users\Kaero\Documents\可修改,带有中文也行'

路径可以修改到自己想进行数据的文件夹,文件夹路径可以在资源管理器快速获取,如下图所示,方便又快捷

MATLAB-自动批量读取文件,并按文件名称或时间顺序进行数据处理_第1张图片

FilePath = uigetdir

运行此代码则会打开一个窗口,等待你选择任一文件夹,选择完后获得此文件夹的路径

MATLAB-自动批量读取文件,并按文件名称或时间顺序进行数据处理_第2张图片

[Filename,FilePath]=uigetfile

则是打开一个窗口获得选择的文件的文件名以及路径,与uigetdir类似

按照文件名顺序进行数据处理的详细代码如下。这个是批量读取.csv格式的文件,如果想改成其他格式,则需要在代码中修改对应的后缀名;如果想将处理顺序反过来可以用flipud函数或从大往小进行循环

​
clear;clc;close;

Path = 'C:\Users\Kaero\Documents';   % 设置数据存放的文件夹路径

% Path = uigetdir; % 获取文件夹路径
% [~,Path]=uigetfile; % 获取文件所在文件夹的路劲

File = dir(fullfile(Path,'*.CSV'));  % 获取文件夹下所有符合后缀名为.csv文件(后缀名可以根据自己情况进行修改)的完整信息

FileNames = {File.name}'; % 提取所有文件的文件名,转换为n行1列

Number_Files = size(FileNames,1);    % 获取所提取数据文件的个数

%数据处理
for i = 1 : Number_Files

    filename = [Path, '\', char(File(i).name)]; % 根据时间顺序连接路径和文件名得到完整的文件路径

    data = readmatrix(filename); % 读取文件中的数据,CSV文件是如此,其他诸如txt,xlsx文件可能会有所不同,我还没验证过
    
    %% 根据读取的数据进行处理,这部分根据想要的效果自由发挥



    %%

end

​

 i 的每一次循环是处理一个文件,如果不同文件的数据处理方法差异过大,是不能单独使用循环的,还得结合其他方法!!!

按照文件保存时间顺序进行数据处理的详细代码如下

​
clear;clc;close;

Path = 'C:\Users\Kaero\Documents';   % 设置数据存放的文件夹路径

% Path = uigetdir; % 获取文件夹路径
% [~,Path]=uigetfile; % 获取文件所在文件夹的路劲

File = dir(fullfile(Path,'*.CSV'));  % 获取文件夹下所有符合后缀名为.csv文件(后缀名可以根据自己情况进行修改)的完整信息

FileDates = [File.datenum]';  % 提取文件的时间信息

[~, sortedIndex] = sort(FileDates);  % 根据时间信息排序文件索引

Number_Files = size(FileDates,1);    % 获取所提取数据文件的个数

%数据处理
for i = 1 : Number_Files

    filename = [Path, '\', char(File(sortedIndex(i)).name)]; % 根据时间顺序连接路径和文件名得到完整的文件路径

    data = readmatrix(filename); % 读取文件中的数据,CSV文件是如此,其他诸如txt,xlsx文件可能会有所不同,我还没验证过
    
    %% 根据读取的数据进行处理,这部分根据想要的效果自由发挥



    %%

end

​

 最终可得到的效果如视频所示

演示视频

如果觉得这片文章对你有用的话,能否点个赞再走呢? 

你可能感兴趣的:(数据处理,matlab,数据分析)