[Eeglablist] ICA problem

peng wang pwang.list at googlemail.com
Fri Jan 29 01:49:54 PST 2010


Hi there,

   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);
 clear sz;
 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
code).

   Thank you for your help.

best
Peng
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://sccn.ucsd.edu/pipermail/eeglablist/attachments/20100129/c07e248a/attachment.html>


More information about the eeglablist mailing list