一、建立子文件夹-mkdir的使用
需求:在文件夹‘截取后数据’中建立子文件夹s01—s32。
代码:
for k=1:32
if k<10
pathname=sprintf('s0%d\\',k);
end
if k>=10
pathname=sprintf('s%d\\',k);
end
pathname2=['C:\Users\hubert\Desktop\稀疏矩阵\截取后数据\',pathname];
mkdir('C:\Users\hubert\Desktop\稀疏矩阵\截取后数据\',pathname);
end
二、截取数据-reshape的使用
要求:将原始数据‘data:32X40X(10X128)1280’,截取成40个‘32X(5X128)640’的数据
代码:
pathname1='C:\Users\hubert\Desktop\稀疏矩阵\修改使用数据\';
m=struct();
for k=1:32
if k<10
filename1=sprintf('s0%d',k);
end
if k>=10
filename1=sprintf('s%d',k);
end
x=load([pathname1,filename1]);
m.data=x.data;
m1=reshape(m.data,[40 32 10 128]);
if k<10
pathname=sprintf('s0%d\\',k);
end
if k>=10
pathname=sprintf('s%d\\',k);
end
pathname2=['C:\Users\hubert\Desktop\稀疏矩阵\截取后数据2\',pathname];
mkdir('C:\Users\hubert\Desktop\稀疏矩阵\截取后数据2\',pathname);
for i=1:40
m2=m1(i,1:32,1:5,:);
m3=reshape(m2,[32 5*128]);
data=m3;
if k<10
filename2=sprintf('s0%d-%d',k,i);
end
if k>=10
filename2=sprintf('s%d-%d',k,i);
end
save([pathname2,filename2],'data');
end
end
三、合并数据
要求:将上面的40个‘32X(5X128)640’的数据合并成一个data:40X32X64的数据。
代码:
pathname1='C:\Users\hubert\Desktop\稀疏矩阵\截取后数据\';
pathname3='C:\Users\hubert\Desktop\稀疏矩阵\合并1\';
%32个被试者
for k=1:32
if k<10
filename1=sprintf('s0%d\\',k);
filename11=sprintf('s0%d',k);
end
if k>=10
filename1=sprintf('s%d\\',k);
filename11=sprintf('s%d',k);
end
pathname2=[pathname1,filename1]; %C:\Users\hubert\Desktop\脑电数据集\截取后数据\s01\
pathname4=[pathname3,filename1]; %C:\Users\hubert\Desktop\脑电数据集\合并后的数据\s01\
%mkdir(pathname3,filename1); %首次执行时需要创建新的文件夹
data1=[];
%每人40次试验
for j=1:40
if k<10
filename2=sprintf('s0%d-%d',k,j);
filename3=sprintf('s0%d-%d\\',k,j);
end
if k>=10
filename2=sprintf('s%d-%d',k,j);
filename3=sprintf('s%d-%d\\',k,j);
end
xx=load([pathname2,filename2]); % xx=s01-1
m1=xx.data;
data1=[data1;m1];
end
m2 = reshape(data1,[40 32 5 128]);
m3=m2(1:40,1:32,1:5,:);
data=reshape(m3,[40 32 640]);
save([pathname3,filename11],'data');
end