【问题标题】:how to generate a random matrix with Orthogonalized rows using Gram-Schmidt algorithm in Matlab如何在 Matlab 中使用 Gram-Schmidt 算法生成具有正交行的随机矩阵
【发布时间】:2014-09-19 04:16:59
【问题描述】:

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

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

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

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

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

感谢任何帮助。

【问题讨论】:

标签: algorithm matlab matrix orthogonal


【解决方案1】:

你可能想看看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

【讨论】:

猜你喜欢
  • 2011-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-20
相关资源
最近更新 更多