我正在嘗試使用sourceCpp
從Rcpp
包編譯時,下面的錯誤傳遞`ARMA :: cube`argument到功能時:錯誤使用RcppArmadillo
`my path to R/.../Rcpp/internal/Exporter.h`
no matching function for call to 'arma::Cube<double>::Cube(SEXPREC*&)'
對象cube
是armadillo
相當於一個array
的在R
。
編輯:請注意,問題似乎是該函數不能接受arma::cube
對象作爲參數。如果我們arma::mat B
改變arma::cube B
它的工作:
#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]
using namespace arma;
// [[Rcpp::export]]
arma::cube ssmooth(arma::mat A,
arma::cube B) {
int ns = A.n_rows;
int nk = A.n_cols;
int np = B.n_rows;
arma::mat C = zeros<mat>(nk, ns);
arma::cube D = zeros<cube>(nk, nk, ns);
return D;
}
我將不勝感激任何提示。
謝謝,我在Windows和Debian中都遇到了這個錯誤,但我會再次檢查我的代碼。 – nopeva
錯誤似乎是函數不會接受'cube'作爲參數,但會接受'mat'例如。 – nopeva
我在這裏遇到同樣的問題。出於某種原因,它不會接受'arma :: cube'作爲參數。我更新Rcpp和RcppArmadillo分別版本0.12.1和0.6.100.0.0,問題依然存在。我在ubuntu 14.04下工作,g ++ 4.8.4和R 3.2.2 – gvegayon