前言
前几天遇到过一个数据集处理的小小问题,记录一下。
就是我需要把若干个.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: