如何在matlab中合并加载多个.mat文件

本文记录了如何使用MATLAB将多个包含data和labels的.mat文件合并为一个4D数据和3D标签矩阵的过程。通过遍历指定路径下的所有.mat文件,利用cat函数逐个拼接data和labels,最终得到所需维度的矩阵。代码简洁易懂,适合新手学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

前几天遇到过一个数据集处理的小小问题,记录一下。
就是我需要把若干个.mat文件合并到一起再加载进去
其中每一个.mat文件是有data和labels
data的维度是40×40×8064
labels的维度是40×4
在这里插入图片描述

也就是我需要得到32个data,并且放在一起构成一个40×40×8064×32的4D数据
需要得到32个labels,并且合并在一起构成一个40×40×32的数据


代码及其解释

比如我有从s1到s32一共32个数据集,存放的路径是
E:\DEAP_matlab\DEAP数据集\data_preprocessed_matlab\s*.mat
*从1到32表示32个数据集

我的做法是先导入s1.mat

a=load('E:\DEAP_matlab\DEAP数据集\data_preprocessed_matlab\s1.mat');
A = getfield (a,'data');		%先把s1.mat的data放在A中,方便后续
L = getfield(a,'labels');		%先把s1.mat的labels放在L中

然后就需要遍历从s2.mat的data到s32.mat的data填充在刚才的A的维度上
遍历s2.labels到s32.mat的labels填充在刚才的L的维度上

定义一个存放数据集的List,然后遍历

List =dir('E:\DEAP_matlab\DEAP数据集\data_preprocessed_matlab\s*.mat');
k=length(List);
for i=2:k
    filename=['E:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值