Performs Principal Component Analysis incrementally. If one has a data matrix A, performing PCA on this matrix is equivalent to centering the data by subtracting the sample mean, then performing SVD on the centered matrix to obtain the principal components. In the incremental or online version, one has a large data matrix A for which PCA has already been performed, and a new batch of data X is presented. Using this function is equivalent to computing PCA for the concatenated matrix [A X], but takes advantage of the fact that
the PCA for A has already been computed. This requires updating the sample mean, and orthogonalizing a set of vectors dependent on the previous principal components, the new data, and a "mean-correction" vector. The algorithm is explained in detail in: D. Ross, Incremental Learning for Robust Visual Tracking, https://www.cs.toronto.edu/~dross/ivt/RossLimLinYang_ijcv.pdf
This function here is also analogous to the incremental PCA implemented in Python's scikit learn package: https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.IncrementalPCA.html
Josiah Wai (2023). incrementalPCA (https://www.mathworks.com/matlabcentral/fileexchange/88872-incrementalpca), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!