MATLAB中批量导入.mat文件(每个文件多变量)

时间:2024-02-22 17:46:33

一、新建MATLAB script(.m文件):readall_mat.m

二、代码如下:

function data = readall_mat(path)

% READALL_MAT 读取所有文件

% DATA = READALL_MAT(PATH)读取路径PATH下的所有mat文件中的数据赋给data

% mat文件中含有多个数据项

% 输出cell格式以免各数据项长度不同

% 输出data后若要使用data中的内容请使用data{index}访问

%

% 原始版本:V1.0 作者:贾郑磊 时间:2018.03.05

A = dir(fullfile(path,\'*.mat\'));

% 读取后A的格式为

% name -- filename

% date -- modification date

% bytes -- number of bytes allocated to the file

% isdir -- 1 if name is a directory and 0 if not

% ???--都显示为7.3702e+05标识

A = struct2cell(A);

num = size(A);

for k =0:num(2)-1

x(k+1) = A(num(1)*k+1);

end

m = 1;

for k = 1:num(2)

newpath = strcat(path,\'\\',x(k));

temp = load(char(newpath));

temp = struct2cell(temp);

num2 = size(temp);

for l = 1:num2(1)

data{m} = temp{l};

m = m+1;

end

end

% [EOF] readall_mat.m

三、调试过程用到的关键词:

1.dbstop in readall_mat at 35(或者手动添加):加断点

2.data = readall_mat(\'E\mydata\');:运行script

3.dbcont:调试至下一断点

4.变量名:查看当前变量内容

四、运行结果:

将文件路径下的多.mat文件的多变量按文件顺序导入至data中

五、其他辅助操作

1.执行.m文件:在命令窗口输入函数名(参数);

2.中断执行中的.m文件:在命令窗口Ctrl+C