Suppose M is a 20 by 3 complex matrix, and I'd like to SVD. For example, in Matlab, I can do easily with:
[U, S, V] = svd(M);
where U, S, and V are complex matrices of20x20, 20x3, and 3x3, respectively.
However, I'd like to make U, a 20x20 matrix, to be either real matrix or near-real matrix (i.e., imaginary parts in the matrix are very small). S and V are okay with complex matrices. Having a real matrix is desirable for me in that it can minimize the overhead of computation in my program code.
I have no idea such approximation or decomposition exists. Is it possible?