在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))

enter image description here

相反,以下代码(非常相似,仅使用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
);
}'
)

enter image description here

对于这种奇怪的代码行为,请提出任何建议吗?预先非常感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)