Question

I have Vectors which have a certain position (Voxels) in an image. I would like to perform a pca to cluster out all Voxels which are correlating with each other.

I have for example three Voxels in 1D:

syn_data_1 = [1;0;0;1;1];
syn_data_2 = [1;0;0;1;1];
syn_data_3 = [0;0;1;0;1];
syn_data = [syn_data_1, syn_data_2, syn_data_3]
%syn_data(:,1) is the Voxel in position 1 in 1D etc

Now Position 1 and 2 are strongly correlating, while 3 doesn't. It is possible to use corr to see which Voxels are correlating, but it is impossible to do it for all Voxels on a big data set in 3D.

Is there a way to perform a pca on such data, so that I can see a clustering of Voxels which are similar?

PS: Please don't be confused by the word Voxel, since in the end of the day I am just talking about Pixels which are having several properties represented by a vector. I am of course happy to provide further information if this can help to understand my question.

Was it helpful?

Solution

Well, princomp is the MATLAB PCA function. Using it is a little tricky. I've answered a similar question here: computing PCA matrix for set of sift descriptors
Does that help?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top