Hi there,<br><br>   I am using ICA to remove blinks via EEGLab. My dataset has 122 channels, and it takes so long to compute 122 components. <br>   (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". <br>
<br>   (2) Then I tried fastICA instead as following,<br><br>==================<br> sz = size(EEG.data);<br> nchans = sz(1);<br> npts = sz(2);<br> ntrials = sz(3);<br> clear sz;<br> nICs = 24;<br> data = reshape(EEG.data,nchans,npts*ntrials);<br>
 [ica,V,W] = fastica(data,'numOfIC',nICs,'approach','symm');<br> EEG.icasphere = eye(nchans);<br> EEG.icaact = single(reshape(ica,nICs,npts,ntrials));<br> EEG.icawinv = V;<br> EEG.icaweights = W;<br>
 EEG = eeg_checkset( EEG );<br> clear V W ica data;<br><br> EEG = pop_saveset( EEG, 'filename','test_raw_ica');<br>==================<br><br>   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).<br>
<br>   Thank you for your help.<br><br>best<br>Peng<br>