[Eeglablist] PCA topo plots with EEGLAB

Scott Makeig smakeig at ucsd.edu
Wed May 4 10:54:01 PDT 2005

Brian -

ICA unmixing in EEGLAB can easily be replaced by PCA or, more typically, 
PCA-based decompositions, as follows:

EEG.data = data;   % 2-D or 3-D array
EEG.nbchan = size(EEG.data,1); % multiplexed by channels
EEG.icaweights = PCA_matrix;
EEG.icasphere = eye(EEG.nbchan); % null entry = identity matrix

Here, the PCA_matrix should be that used to *un*mix the data, e.g. for 
PCA, the matrix inverse (inv() or pseduo-inverse, pinv()) of the product 
of the eigenvector matrix times the eigenvalue diagonal matrix. The 
pseudo-inverse is needed when the number of components retained is less 
than the number of data channels (EEG.nbchan). Any kind of  linear 
transform of the data can be handled by EEGLAB in this way. (Note: As 
the product of the icasphere and icaweights matrices is always used in 
EEGLAB, you could also reverse the order of matrix assignments above).

Scott Makeig

Brian Roach wrote:

> I am wondering about importing PCA data (from matlab) to EEGLAB so 
> that I can use some of its plotting functions.  Is there is a format 
> template for importing data from a matlab array (if so, could someone 
> please send it to me)?  If anyone has a better idea about how I should 
> do this, please let me know.  I am using Jurgen Kayser's matlab code 
> for PCA (found here: 
> http://psychophysiology.cpmc.columbia.edu/mmedia/mmedia.html).
> Thanks for any info and help.
> _______________________________________________
> eeglablist mailing list eeglablist at sccn.ucsd.edu
> http://sccn.ucsd.edu/mailman/listinfo/eeglablist
> Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
> To unsubscribe, send an empty email to 
> eeglablist-unsubscribe at sccn.ucsd.edu

More information about the eeglablist mailing list