matlab遍历搜索文件,并循环读取mat文件

文章目录

  • 前言
  • 一、fullfile-拼接路径;dir-搜索文件
  • 二、根据搜索结果进行遍历 importdata-读入数据
  • 三、完整代码


前言

1、matlab遍历搜索文件
2、循环读取mat文件


一、fullfile-拼接路径;dir-搜索文件

fullfile - 从各个部分构建完整文件名

此 MATLAB 函数 根据指定的文件夹和文件名构建完整的文件设定。fullfile 在必要情况下插入依平台而定的文件分隔符,但不添加尾随的文件分隔符。在
Windows 平台上,文件分隔符为反斜杠 (\)。在其他平台上,文件分隔符可能为不同字符。

f = fullfile(filepart1,...,filepartN)

dir - 列出文件夹内容

此 MATLAB 函数 列出当前文件夹中的文件和文件夹。

dir
dir name
listing = dir(name)
%定义基础搜索路径
base_path = './';
%使用fullfile函数拼接完整路基
all_file_path = fullfile(base_path,'*.mat');

%输出可以看到all_file_path = '.\*.mat'
all_file_path

%使用dir函数进行搜索
file = dir(alll_file_path);
file

搜索结果为struct形式:
在这里插入图片描述

二、根据搜索结果进行遍历 importdata-读入数据

importdata - 从文件加载数据

此 MATLAB 函数 将数据加载到数组 A 中。

A = importdata(filename)
A = importdata('-pastespecial')
A = importdata(___,delimiterIn)
A = importdata(___,delimiterIn,headerlinesIn)
[A,delimiterOut,headerlinesOut] = importdata(___)
%以mat文件为示例,使用循环读取搜索到的mat文件
for i = 1:length(file)%对每个数据进行处理
    %数据的名字 xx.mat
    name = file(i).name;
    %数据的路径 ./ 只有上一级路径,不包括文件名
    path = file(i).folder;
    %使用fullfule拼接
    file_path = fullfile(path, name);
    
    %从完整路径读取mat里的data
    data = importdata(file_path);
    size(data)
end

三、完整代码

%本示例展示如何通过matlab遍历寻找指定文件

%定义基础搜索路径
base_path = './';
%使用fullfile函数拼接完整路基
all_file_path = fullfile(base_path,'*.mat');
all_file_path
%使用dir函数进行搜索
file = dir(all_file_path);
file

%以mat文件为示例,使用循环读取搜索到的mat文件
for i = 1:length(file)%对每个数据进行处理
    %数据的名字 xx.mat
    name = file(i).name;
    %数据的路径 ./ 只有上一级路径,不包括文件名
    path = file(i).folder;
    %使用fullfule拼接
    file_path = fullfile(path, name);
    
    %从完整路径读取mat里的data
    data = importdata(file_path);
    size(data)
end

你可能感兴趣的:(matlab,开发语言)