[Eeglablist] ICA problem
pwang.list at googlemail.com
Fri Jan 29 01:49:54 PST 2010
I am using ICA to remove blinks via EEGLab. My dataset has 122 channels,
and it takes so long to compute 122 components.
(1) So I tried to use the option "ncomps" (say, 24) to reduce the number
of components. However, an error message appears after computing: "Matrix
dimensions must agree".
(2) Then I tried fastICA instead as following,
sz = size(EEG.data);
nchans = sz(1);
npts = sz(2);
ntrials = sz(3);
nICs = 24;
data = reshape(EEG.data,nchans,npts*ntrials);
[ica,V,W] = fastica(data,'numOfIC',nICs,'approach','symm');
EEG.icasphere = eye(nchans);
EEG.icaact = single(reshape(ica,nICs,npts,ntrials));
EEG.icawinv = V;
EEG.icaweights = W;
EEG = eeg_checkset( EEG );
clear V W ica data;
EEG = pop_saveset( EEG, 'filename','test_raw_ica');
Everything seems fine. But when I reject the blink component via GUI of
eeglab and load the data again, Something strange happens. It seems the
amplitude of EEG.data become much smaller, about in -1~1 range. Thus I
wonder whether there was some normalization behind, and how can I correct
it? The problem would not repeat if I choose the number of components same
as channels event in fast ICA (e.g. change to "nICs = nchans" in the above
Thank you for your help.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the eeglablist