本次操作的目的是将数据集S01(大小为500x61x180,500组数据,61通道,每个通道记录了180个值)按照标签(大小为1x500,取值-1和1分为两类)将不同类别的数据分开,并分别进行作图保存到本地。
load('D:\RESEARCH\DATASET\ERRP dataset from gaze\ErrP data from gaze\S01eeg.mat')
load('D:\RESEARCH\DATASET\ERRP dataset from gaze\ErrP data from gaze\S01labels.mat')
%错误信号的叠加平均
S01_error(61,180)=0;%预定义信号及信号长度
m=0;
for n=1:500
if S01labels(1,n)==-1
m=m+1;%计数,最后要平均的
for i=1:61
for j=1:180
S01_error(i,j)=(S01_error(i,j)+S01eeg(n,i,j))/m;
end
end
end
end
errorcount = m
for i=1:61
n=i;
figure(i);
plot(1:180,S01_error(i,:));
set(i,'visible','off');%设置不打开图像窗口
name = num2str(n);
name = strcat('D:\RESEARCH\CODE\errn from gaze_based\images\S01\S01error\',name,'.png');
print(i,'-dpng',name);
end
%正确信号的叠加平均
S01_correct(61,180)=0;%预定义信号及信号长度
m=0;
for n=1:500
if S01labels(1,n)==1
m=m+1;%计数,最后要平均的,另外也便于分类
for i=1:61
for j=1:180
S01_correct(i,j)=(S01_correct(i,j)+S01eeg(n,i,j))/m;
end
end
end
end
correctcount = m
for i=1:61
n=i;
j=i+61;
figure(j);
plot(1:180,S01_correct(i,:));
set(j,'visible','off');%设置不打开图像窗口
name = num2str(n);
name = strcat('D:\RESEARCH\CODE\errn from gaze_based\images\S01\S01correct\',name,'.png');
print(j,'-dpng',name);
end
%正确和错误信号在一张图上
for i=1:61
n=i;
k=i+122;
figure(k);
plot(1:180,S01_error(i,:),'r',1:180,S01_correct(i,:));
set(k,'visible','off');%设置不打开图像窗口
name = num2str(n);
name = strcat('D:\RESEARCH\CODE\errn from gaze_based\images\S01\error&correct\',name,'.png');
print(k,'-dpng',name);
end
图像生成之后,就可以在本地进行查看了。
来源:CSDN
作者:ddong7
链接:https://blog.csdn.net/qq_37813206/article/details/104196492