※ 引述《cy10911 (Ann)》之銘言:
: 如題
: 請問要怎麼產生一個非方陣的正交矩陣
: 每個行向量跟別人內積為0
: 自己跟自己內積為1
http://elliottback.com/wp/modified-gram-schmidt-orthogonalization-in-matlab/
B = rand(50, 50);
A = QR(B);
all(all(abs(A * A' - eye(50)) < 1e-6)) % true
這樣試試看,基本上不太會出現rank不足的問題 (就確定rank(B) == size(B, 1))
不過隨機還是會發生rank(B) < size(B, 1),所以要小心這件事情