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