subspacea - Angles between subspaces
Version 4.6 (11.9 KB) by
Andrew Knyazev
Angles between subspaces and canonical correlations in general scalar products.
subspacea(F,G,A) Finds all min(size(orth(F),2),size(orth(G),2)) principal angles between two subspaces spanned by the columns of matrices F and G in the A-based scalar product x'*A*y, where A is Hermitian and positive definite. COS of principal angles is called canonical correlations in statistics.
The input A can be provided as a matrix as well as a string of a function name, e.g., funcA giving the product funcA(X) = A*X.
[theta,U,V] = subspacea(F,G,A) also computes left and right principal (canonical) vectors - columns of U and V, respectively.
If F and G are vectors of unit length and A=I, the angle is ACOS(F'*G) in exact arithmetic. If A is not provided as a third argument, than A=I and the function gives the same largest angle as SUBSPACE.m by Andrew Knyazev. MATLAB's SUBSPACE.m function is still badly designed and fails to compute some angles accurately.
The algorithm is described in A. V. Knyazev and M. E. Argentati, Principal Angles between Subspaces in an A-Based Scalar Product: Algorithms and Perturbation Estimates. SIAM J. Scientific Computing, 23 (2002), no. 6, 2009-2041. http://dx.doi.org/10.1137/S1064827500377332
Cite As
Andrew Knyazev (2024). subspacea - Angles between subspaces (https://www.mathworks.com/matlabcentral/fileexchange/55-subspacea-angles-between-subspaces), MATLAB Central File Exchange. Retrieved .
Knyazev, Andrew V., and Merico E. Argentati. “Principal Angles between Subspaces in an A-Based Scalar Product: Algorithms and Perturbation Estimates.” SIAM Journal on Scientific Computing, vol. 23, no. 6, Society for Industrial & Applied Mathematics (SIAM), Jan. 2002, pp. 2008–40, doi:10.1137/s1064827500377332.
MATLAB Release Compatibility
Created with
R2021a
Compatible with any release
Platform Compatibility
Windows macOS LinuxCategories
- AI, Data Science, and Statistics > Statistics and Machine Learning Toolbox > Dimensionality Reduction and Feature Extraction >
Find more on Dimensionality Reduction and Feature Extraction in Help Center and MATLAB Answers
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.