I want to generate a M*N matrix (M is not equal to N) with following constraints in MATLAB:
Step 1. Set each entry of the matrix to an i.i.d. N(0,1) value.
S
You might want to look at orth:
A = randn( m, n ); % random iid ~N(0,1) oA = orth( A.' ).'; % orthogonal rows nA = bsxfun( @rdivide, oA, sqrt( sum( oA.^2, 2 ) ) ); % normalize to unit length