MATLAB: Is it Necessary to De-Mean the Data before Applying PCA, or does pca(X) do that Automatically

dataMATLABpcasignal processing

I am aware that a first step in performing PCA for dimensionality reduction is de-meaning the data.
I have performed PCA after de-meaning manually with X=X-mean(X) and compared with plainly applying [COEFF,score,latent,~,explained]=pca(X) on my data.
By inspecting the eigenvalues and the percentage of variability described by each PC on both cases (i.e. latent and explained in the above case), I can see that I get two different results. Is manual de-meaning doing too much in this case?

Best Answer

MATLAB's pca functions definitely de-means. It should make no meaningful difference if you de-mean ahead.
Are you sure you are de-meaning along the correct dimension? You should only de-mean along dimension 1 of your input.
Are you sure you're getting different output, beyond perhaps some floating-point differences (on the order of 1e-15) smaller than the results?
Related Question