Main Content

subspace

Angle between two subspaces

Syntax

theta = subspace(A,B)

Description

theta = subspace(A,B) finds the angle between two subspaces specified by the columns of A and B. If A and B are column vectors of unit length, this is the same as acos(abs(A'*B)).

Examples

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 A and B are different sizes — A has three columns and B four. 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

That A and B are orthogonal is shown by the fact that theta is equal to π/2.

theta - pi/2
ans =
     0

Tips

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 B, subspace(A,B) gives a measure of the amount of new information afforded by the second experiment not associated with statistical errors of fluctuations.

Extended Capabilities

Version History

Introduced before R2006a

Go to top of page