Angle between two subspaces
theta = subspace(A,B)
theta = subspace(A,B) finds
the angle between two subspaces specified by the columns of
B are column vectors
of unit length, this is the same as
Consider two subspaces of a Hadamard matrix, whose columns are orthogonal.
H = hadamard(8); A = H(:,2:4); B = H(:,5:8);
Note that matrices
different sizes —
A has three columns and
It is not necessary that two subspaces be the same size in order to
find the angle between them. Geometrically, this is the angle between
two hyperplanes embedded in a higher dimensional space.
theta = subspace(A,B) theta = 1.5708
B are orthogonal
is shown by the fact that
theta is equal to π/2.
theta - pi/2 ans = 0
If the angle between the two subspaces is small, the two spaces
are nearly linearly dependent. In a physical experiment described
by some observations
A, and a second realization
of the experiment described by
a measure of the amount of new information afforded by the second
experiment not associated with statistical errors of fluctuations.
Usage notes and limitations:
Code generation does not support sparse matrix inputs for this function.
This function fully supports GPU arrays. For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).