spectopo.m from EEGLAB: %%%%%%%%%%%%%%%%%%% % for your epoched data, channel 2 [spectra,freqs] = spectopo(EEG.data(2,:,:), 0, EEG.srate); % delta=1-4, theta=4-8, alpha=8-13, beta=13-30, gamma=30-80 deltaIdx = find(freqs>1 & freqs<4); thetaIdx = find(freqs>4 & freqs<8); alphaIdx = find(freqs>8 & freqs<13); betaIdx = find(freqs>13 & freqs<30); gammaIdx = find(freqs>30 & freqs<80); % compute absolute power deltaPower = mean(10.^(spectra(deltaIdx)/10)); thetaPower = mean(10.^(spectra(thetaIdx)/10)); alphaPower = mean(10.^(spectra(alphaIdx)/10)); betaPower = mean(10.^(spectra(betaIdx)/10)); gammaPower = mean(10.^(spectra(gammaIdx)/10)); %%%%%%%%%%%%%%%%%%% absolutepower.m %%%%%%%%%%%%%%%%%%% % Mean power % Takes data from channels 1:14, computes mean power across the dataset, % outputs data by frequency band %%%%%%%%%%%%%%%%% for j = 1:14 % for data, channels 1:14, all frames [spectra,freqs] = spectopo(EEG.data(j,0.001:EEG.pnts,:), 0, EEG.srate); % delta=1-4, theta=4-8, alpha=8-13, beta=13-30, gamma=30-60 eegchannel(j).deltaIdx = find(freqs>1 & freqs<4); eegchannel(j).thetaIdx = find(freqs>4 & freqs<8); eegchannel(j).alphaIdx = find(freqs>8 & freqs<13); eegchannel(j).betaIdx = find(freqs>13 & freqs<30); eegchannel(j).gammaIdx = find(freqs>30 & freqs<40); % compute absolute power eegchannel(j).deltaPower = 10^(mean(spectra(eegchannel(j).deltaIdx))/10); eegchannel(j).thetaPower = 10^(mean(spectra(eegchannel(j).thetaIdx))/10); eegchannel(j).alphaPower = 10^(mean(spectra(eegchannel(j).alphaIdx))/10); eegchannel(j).betaPower = 10^(mean(spectra(eegchannel(j).betaIdx))/10); eegchannel(j).gammaPower = 10^(mean(spectra(eegchannel(j).gammaIdx))/10); end % concatenate mean power by channel deltaPowerAllChannels = [eegchannel(1,1).deltaPower eegchannel(1,2).deltaPower eegchannel(1,3).deltaPower eegchannel(1,4).deltaPower eegchannel(1,5).deltaPower eegchannel(1,6).deltaPower eegchannel(1,7).deltaPower eegchannel(1,8).deltaPower eegchannel(1,9).deltaPower eegchannel(1,10).deltaPower eegchannel(1,11).deltaPower eegchannel(1,12).deltaPower eegchannel(1,13).deltaPower eegchannel(1,14).deltaPower]; thetaPowerAllChannels = [eegchannel(1,1).thetaPower eegchannel(1,2).thetaPower eegchannel(1,3).thetaPower eegchannel(1,4).thetaPower eegchannel(1,5).thetaPower eegchannel(1,6).thetaPower eegchannel(1,7).thetaPower eegchannel(1,8).thetaPower eegchannel(1,9).thetaPower eegchannel(1,10).thetaPower eegchannel(1,11).thetaPower eegchannel(1,12).thetaPower eegchannel(1,13).thetaPower eegchannel(1,14).thetaPower]; alphaPowerAllChannels = [eegchannel(1,1).alphaPower eegchannel(1,2).alphaPower eegchannel(1,3).alphaPower eegchannel(1,4).alphaPower eegchannel(1,5).alphaPower eegchannel(1,6).alphaPower eegchannel(1,7).alphaPower eegchannel(1,8).alphaPower eegchannel(1,9).alphaPower eegchannel(1,10).alphaPower eegchannel(1,11).alphaPower eegchannel(1,12).alphaPower eegchannel(1,13).alphaPower eegchannel(1,14).alphaPower]; betaPowerAllChannels = [eegchannel(1,1).betaPower eegchannel(1,2).betaPower eegchannel(1,3).betaPower eegchannel(1,4).betaPower eegchannel(1,5).betaPower eegchannel(1,6).betaPower eegchannel(1,7).betaPower eegchannel(1,8).betaPower eegchannel(1,9).betaPower eegchannel(1,10).betaPower eegchannel(1,11).betaPower eegchannel(1,12).betaPower eegchannel(1,13).betaPower eegchannel(1,14).betaPower]; gammaPowerAllChannels = [eegchannel(1,1).gammaPower eegchannel(1,2).gammaPower eegchannel(1,3).gammaPower eegchannel(1,4).gammaPower eegchannel(1,5).gammaPower eegchannel(1,6).gammaPower eegchannel(1,7).gammaPower eegchannel(1,8).gammaPower eegchannel(1,9).gammaPower eegchannel(1,10).gammaPower eegchannel(1,11).gammaPower eegchannel(1,12).gammaPower eegchannel(1,13).gammaPower eegchannel(1,14).gammaPower]; %concatenate again to create a single matrix where X is channel and Y is %frequency ascending absolutepowermatrix = [deltaPowerAllChannels; thetaPowerAllChannels; alphaPowerAllChannels; betaPowerAllChannels; gammaPowerAllChannels]; %%%%%%%%%%%%%%%%% Modification to pop_chanedit.m file from EEGLAB: (Line #:163) Original: if isempty(chans) || ~ishandle(chans) Edited: if isempty(chans) || ~max(ishandle(chans))