如何解决在RcppArmadillo中使用qr分解的问题
我需要从犰狳到Rcpp进行qr分解。确实会运行以下R代码(带有经济QR):
# test matrix:
m<-5; n<-4
set.seed(123)
X <- replicate(n,runif(m))
sourceCpp(code='
#include <iostream>
#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]
using namespace Rcpp;
//[[Rcpp::export]]
List QRdec_econ(arma::mat X) {
int n = X.n_cols;
int m = X.n_rows;
arma::mat Q(m,n);
Q.fill(0);
arma::mat R(n,n);
R.fill(0);
arma::qr_econ(Q,R,X);
return List::create(_["Q"] = Q,_["R"] = R
);
}'
)
QRdec_econ(as.matrix(X))
相反,以下代码(非常相似,仅使用qr而不是qr_econ)在编译时失败:
sourceCpp(code='
#include <iostream>
#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]
using namespace Rcpp;
//[[Rcpp::export]]
List CPHHQR_arma(arma::mat X) {
int n = X.n_cols;
int m = X.n_rows;
arma::mat Q(m,m);
Q.fill(0);
arma::mat R(m,n);
R.fill(0);
arma::umat P(n,n);
P.fill(0);
arma::qr(Q,P,X,"matrix");
return List::create(_["Q"] = Q,_["R"] = R,_["P"] = P
);
}'
)
对于这种奇怪的代码行为,请提出任何建议吗?预先非常感谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。