function [M,mappedX ] = pca(X, no_dims)
%PCA Perform the PCA algorithm
% [mappedX, mapping] = pca(X, no_dims)
% The function runs PCA on a set of datapoints X. The variable
% no_dims sets the number of dimensions of the feature points in the
% embedded fe
ature space (no_dims >= 1, default = 2).
% For no_dims, you can also specify a number between 0 and 1, determining
% the amount of variance you want to retain in the PCA step.
% The function returns the locations of the embedded trainingdata in
% mappedX. Furthermore, it returns information on the mapping in mapping.
% This file is part of the Matlab Toolbox for Dimensionality Reduction v0.2b.
% The toolbox can be obtained from http://www.cs.unimaas.nl/l.vandermaaten
% You are free to use, change, or redistribute this code in any way you
% want. However, it is appreciated if you maintain the name of the original