R与Matlab中复矩阵QR分解的差异

R与Matlab中复矩阵QR分解的差异,r,matlab,matrix,complex-numbers,qr-decomposition,R,Matlab,Matrix,Complex Numbers,Qr Decomposition,通过下面的矩阵A,我得到了[R]和Matlab之间R的QR分解中的不同矩阵。(当然,Q也是不同的。) 检查R软件的分解,我必须重新排列R矩阵的列,以使用Q%*%R[,QR$pivot]重新创建我的原始矩阵A,但这当然破坏了R的上三角性质: zapsmall(Q %*% R[, QR$pivot]) [,1] [,2] [,3] [1,] 1.00+0.00i 0.00+0.00i 1.0+0.0i [2,] -0.75+0.75i 1.00

通过下面的矩阵A,我得到了[R]和Matlab之间R的QR分解中的不同矩阵。(当然,Q也是不同的。)

检查R软件的分解,我必须重新排列R矩阵的列,以使用
Q%*%R[,QR$pivot]
重新创建我的原始矩阵
A
,但这当然破坏了R的上三角性质:

zapsmall(Q %*% R[, QR$pivot])
            [,1]        [,2]      [,3]
[1,]  1.00+0.00i  0.00+0.00i  1.0+0.0i
[2,] -0.75+0.75i  1.00+0.00i -1.5+1.5i
[3,]  0.00+0.00i -0.75+0.75i  0.0-1.0i
而在Matlab中,直接的
Q*R
工作:

Q * R
ans = 
   1.0000 + 0.0000i   0.0000 + 0.0000i   1.0000 + 0.0000i
  -0.7500 + 0.7500i   1.0000 + 0.0000i  -1.5000 + 1.5000i
   0.0000 + 0.0000i  -0.7500 + 0.7500i   0.0000 - 1.0000i
我意识到QR分解不是唯一的,但我需要得到一个上三角R矩阵,就像在Matlab中一样,我可以随后使用它,而无需重新排列它的列,例如
Q%*%R=a

关于如何实现这一点,R软件中有什么建议吗

更新:
有人建议问这个问题,但这个答案只适用于实矩阵,而我的问题是复杂的。

这回答了你的问题吗?我确实看到了,但我不确定它是否适用于这里,因为lapack选项似乎只适用于实矩阵,而不适用于复杂矩阵?你说得对,我错过了。
zapsmall(Q %*% R[, QR$pivot])
            [,1]        [,2]      [,3]
[1,]  1.00+0.00i  0.00+0.00i  1.0+0.0i
[2,] -0.75+0.75i  1.00+0.00i -1.5+1.5i
[3,]  0.00+0.00i -0.75+0.75i  0.0-1.0i
Q * R
ans = 
   1.0000 + 0.0000i   0.0000 + 0.0000i   1.0000 + 0.0000i
  -0.7500 + 0.7500i   1.0000 + 0.0000i  -1.5000 + 1.5000i
   0.0000 + 0.0000i  -0.7500 + 0.7500i   0.0000 - 1.0000i