3

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

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

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

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

我不知道如何实现上面的第二步。

任何帮助表示赞赏。

4

1 回答 1

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
于 2014-07-28T05:47:32.893 回答