How can I perform a PCA analysis over 3D data?

24 views (last 30 days)
Hello everyone. I have a 100*50*20 matrix which contains measurements over an area of space. 100 is the number of latitudes, 50 is the number of longitudes and 20 is the number of times each measurement has been performed. I want to perform PCA over this data, but I would like to obtain eigensurfaces instead of eigenvectors, the regular PCA works just fine over a belt of constant latitude or longitude with all the 20 times; however, if I try to use it over the 3D matrix, I get an error. My next attempt has been to use reshape to merge latitude and longitude in a vector. The obtained coeff matrix obtained has a size of 20*20, not something I can plot over a map.
Can anyone please tell me if I can plot the eigensurfaces to see a 2D image for each time? Thanks.

Accepted Answer

Image Analyst
Image Analyst on 16 Jul 2018
See my attached 3-D PCA demo. My 3-D array is an RGB image.
  6 Comments
Image Analyst
Image Analyst on 13 Nov 2018
I have not worked in the compression field. The existing tried and true methods built into other functions are fine with me and I have no desire or need to improve upon those. They meet my needs so I don't need to research better ones.
Sanchay Mukherjee
Sanchay Mukherjee on 31 Jan 2022
I am trying to do a similar thing. I have a matrix of 200*500*3, where 200*500 is the data for corresponding 3 features (like a 3D plot). I want to find out the relative importance of the 3 features. Do you have any suggestions how should I proceed?
Thanks

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!