Dimensionality reduction for classifying textures with MATLAB I am trying to apply dimensionality reduction on an a set of images (~3000 pixels) using Matlab's Dimensionality Reduction toolbox. However, I know very little about dimension reduction. So I tried several functions by trial and error. PCA returned a matrix with complex numbers, and the others froze MATLAB. Can I get some advice as to which method works good on images? Here are some of the images:

 A: I worked on a 2011 webinar titled "Computer Vision with MATLAB".
The webinar includes a texture classification example that would seem applicable to recognizing patterns in clothing.
You can download all of the code from MATLAB Central
http://www.mathworks.com/matlabcentral/fileexchange/31152-demos-from-computer-vision-with-matlab-webinar 
The example uses a grayscale co-occurence matrix to extract features and then bagged decision trees for a classifier.
A: In the narrower context of facial analysis, your problem is called eigenface analysis. Since PCA works with vectors, you have to vectorize each image matrix by concatenating all the rows or columns before proceeding. (Tensor decomposition has been tried too, but don't worry about that since you're new to PCA.)
The important thing to note is that the images must be standardized---much like a passport photo. If you're trying to compare wildly different images, you'll find that you need a large number of eigenvectors, indicating that dimension reduction is not feasible.
