Python如何读取同目录指定文件夹内的所有.mat文件
MATLAB批量导入同层级folder目录下所有.mat文件方案
路径配置失效的核心原因是多数写法依赖MATLAB当前的工作目录,只要运行脚本时工作目录没有切到script和folder所在的根目录,就会触发文件找不到报错。以下实现完全基于脚本自身路径定位目标文件夹,不依赖工作目录配置,可直接运行。
可直接复用的脚本代码
把以下代码放到你的script脚本中即可:
% 获取当前脚本所在的根目录路径 script_fullpath = mfilename('fullpath'); root_path = fileparts(script_fullpath); % 拼接folder文件夹的完整路径 mat_dir = fullfile(root_path, 'folder'); % 路径合法性校验 if ~isfolder(mat_dir) error('folder文件夹路径异常,请检查目录结构'); end % 读取文件夹内所有.mat文件列表 mat_files = dir(fullfile(mat_dir, '*.mat')); % 循环加载所有mat文件 for idx = 1:length(mat_files) file_fullpath = fullfile(mat_files(idx).folder, mat_files(idx).name); fprintf('已加载第%d个文件:%s\n', idx, mat_files(idx).name); % 加载到结构体数组存储,避免变量冲突 all_mat_data(idx) = load(file_fullpath); end
关键说明
- 全程使用
fullfile()拼接路径,自动适配Windows、macOS、Linux的路径分隔符,不需要手动写/或\ - 加载的所有.mat文件内容统一存在
all_mat_data结构体数组中,每个数组元素对应一个mat文件内的所有变量,不会出现不同mat文件同名变量互相覆盖的问题 - 如果需要把mat内变量直接导入当前工作区,把循环内的
all_mat_data(idx) = load(file_fullpath);替换为load(file_fullpath);即可,非必要不推荐这种写法 - 不要使用
load('folder/xxx.mat')这类写死相对路径的写法,只要运行时工作目录不在根目录下就会报错
内容的提问来源于stack exchange,提问作者stone327
相关产品推荐
相关产品推荐

