Take the 2-minute tour ×
Cross Validated is a question and answer site for people interested in statistics, machine learning, data analysis, data mining, and data visualization. It's 100% free, no registration required.

I have some hyperspectral image data similar to this, and I want to do a PCA on it. The problem: I've never done a PCA, and its specially difficult for me to do it on 3D data.

How can I do it in MATLAB or R? [See also Analyzing 3D data: What can be done? ]

share|improve this question

2 Answers 2

up vote 3 down vote accepted

One simple way to do it is to transform your 3D data into a vector. This is a bit rough but often works fine in practice. Then you can use the prcompfunction from the R base package to compute PCA.

You can also use the "Multilinear Principal Component Analysis of Tensor Objects" (MPCA) proposed by Lu et al. (2008). It answers your question directly, as it does PCA on multidimensional objects. An implementation of their algorithm is available in MATLAB here.

share|improve this answer

You could also have a look at the "hyperspec" package in R. http://hyperspec.r-forge.r-project.org/ has a very clear documentation for dealing with hyperspectral data. I would suggest to use MATLAB if you would like to proceed further than PCA.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.