如何在Matlab中使用Gram-Schmidt算法生成具有正交行的随机矩阵

时间:2014-07-28 01:36:41

标签: algorithm matlab matrix orthogonal

我想在MATLAB中使用以下约束生成M * N矩阵(M不等于N):

步骤1.将矩阵的每个条目设置为i.i.d. N(0,1)值。

步骤2.使用Gram-Schmidt算法对矩阵的M行进行正交化。

步骤3.将矩阵的行标准化为单位长度。

我不知道如何实施上述第二步。

感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

您可能需要查看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