代码运行环境Matlab 2013B + eeglab13
%% 导出平均波幅数据到excel
time_N1=find((EEG.times>=80)&(EEG.times<=130));%%%选取想要分析的时间段
time_P3=find((EEG.times>=300)&(EEG.times<=400));
electrode_choice=[5,35,6,36,7,38,10,39,11,40,14,42,15,43,16,45,19,62,20,46,23,48,24,49,25]; %%%想要导出的电极点的序号,这里是F,FC,C,CP,P五列每列中间五个点共25点
EEG_N1=squeeze(mean(EEG_avg(:,:,electrode_choice,time_N1),4));
%%% 导出的是所有被试,所有条件,25个电极点,某个时间段的平均,这里平均之后是个三维的矩阵,即被试,条件,电极点
%%% 但是我们想要到导出的是二维的矩阵,即每一行是每个被试,然后每列是条件加电极点,如s81Fz,s82Fz,s91Fz,s92Fz,s81Cz,s82Cz,s91Cz,s92Cz……
%%% 所以要想办法将三维矩阵变成二维矩阵,B = reshape(A,m,n) 返回一个m*n的矩阵B, B中元素是按列从A中得到的。如果A中元素个数没有m*n个,则会引发错误。
%%% 是按照列的顺序进行转换的,也就是第一列读完,读第二列;并且第一列放完,放第二列
%%% A = 1 4 7 10
%%% 2 5 8 11
%%% 3 6 9 12
%%% B = reshape(A,2,6)
%%% B =
%%% 1 3 5 7 9 11
%%% 2 4 6 8 10 12
EEG_N1_export=reshape(EEG_N1,32,100); %%% EEG_N1是32个subj*4cond*25elect,我们要变成32subj*100cond_elect
xlswrite('EEG_N1',EEG_N1_export);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18