Construct non-square isometry matrix or non-square unitary matrix in matlab (Or mathematically)

isometrylinear algebramatricesunitary-matrices

Based on my understanding for the unitary and isometry matrices is that unitary matrix is a square matrix whose columns (equivalently, rows) form an orthonormal basis, means that $U*U’ = U’*U = I$ where I is the unity matrix , * is multiplication operation and ' is the transpose operation. On the other hand, isometry matrix only has columns which form an orthonormal basis and it’s not necessary to be square, that means that only $U*U’ = I$

My question is how can I construct random isometry matrix ? either in matlab or theoretically in mathematics. Or in other words, is it possible to construct non-square unitary matrix ?

Best Answer

Here is a way to construct a random isometry "portrait" matrix in Matlab with $r \ge c$.

Take a random array $r \times c$ and apply it the "orth" operator which is a kind of Gram-Schmidt orthonormalization:

r=5;c=3;% resp; number of rows and columns
M=rand(r,c);
N=orth(M)
N'*N;%gives I_3
N*N';% doesn't give I_5
Related Question