前言
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