Decompose rotation matrix to plane of rotation and angle I would like to decompose an $n$-dimensional orthogonal rotation matrix (restricting to simple rotation with a single plane of rotation) to the two basis vectors of the plane of rotation, and an angle of rotation.
The common method is decomposing the rotation matrix to an axis and angle, but this doesn't work in higher dimensions.
For example in $\mathbb{R}^3$ given the rotation matrix 
$R_{xy}=\begin{bmatrix}\cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix}$
it's obvious that the plane of rotation is the $xy$-plane spanned by basis vectors $b_0 = (1,0,0)$ and $b_1=(0,1,0)$ and the angle of rotation is $\theta$.
However decomposing it mathematically is rather challenging.
What is the solution for a general (restricted to a single, but arbitrary plane) rotation matrix in $\mathbb{R}^n$?

As long as the rotation is nontrivial, the matrix $R - I$ has rank $2$, and its image is precisely the plane of rotation. So pick two linearly independent columns of $R - I$, and those are your $b_0$ and $b_1$.
