How do I run PCA on multiple cell arrays

9 views (last 30 days)
I have a cell array (see attachment) where each cell contains an array with 21 columns (variables). Each cell represents a different participants and is of different length. I would like to run the PCA on each cell in the cell array and collect the outputs (coeff,score,latent,tsquared,explained,mu) for all participants.
The fucntion I want to use is the following with X being my cell array pre_data_1.
[coeff,score,latent,tsquared,explained,mu] = pca(X)
I am specifically interested in getting an "explained" that contains all the explained variables from each participant. In this variable each column should correspond to an explained variable from a cell/ participant.
I wonder if someone could help me with that?

Accepted Answer

Image Analyst
Image Analyst on 13 Apr 2022
Did you try something like
numCells = numel(X);
for k = 1 : numCells
% Extract contents of cell into array.
thisX = X{k};
% Do PCA and store results in more cell arrays.
[coeff{k},score{k},latent{k},tsquared{k},explained{k},mu{k}] = pca(thisX);
It's untested on your data. It's just off the top of my head.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by