我有一个关于将 matlab 函数转换为 R 的问题,我希望有人能提供帮助。
matlab 和 R 中使用的标准 QR 分解称为 qr()。据我了解,用两种语言执行 qr 分解的标准方法是:
Matlab:
[Q,R] = qr(A)
满足QR=A
R:
z <- qr(A)
Q <- qr.Q(z)
R <- qr.R(z)
两者都为我提供了相同的结果,不幸的是,这不是我需要的。我需要的是这样的:
Matlab:
[Q,R,e] = qr(A,0)它产生一个经济规模的分解,其中 e 是一个置换向量,因此 A(:,e) = Q*R。
回复:
没有线索
我尝试过比较[Q,R,E] = qr(A) with
z <- qr(A);
Q <- qr.Q(z);
R <- qr.R(z);
E <- diag(ncol(A))[z$pivot]
变量 Q 和 E 的结果似乎相同(但 R 的结果不同)。因此,根据定义的输入/输出,将会有不同的结果(这是有道理的)。
所以我的问题是:R中有没有一种方法可以在Matlab中模拟[Q,R,e]=qr(A,0)?
我曾尝试深入研究 matlab 函数,但它导致了一条漫长而曲折的无尽函数定义之路,我希望有一个更好的解决方案。
任何帮助将不胜感激,如果我错过了一些明显的事情,我深表歉意。