Вы пропустили / проигнорировали детали в документации Armadillo: reshape()
является функцией-членом уже существующей матрицы , тогда как вы пытаетесь вызвать ее с помощью присвоения. И компилятор говорит вам нет мас . Так что слушайте компилятор.
Рабочий код
#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]
// [[Rcpp::export]]
arma::mat vec2mat(arma::vec x, int nrow, int ncol) {
arma::mat y(x);
y.reshape(nrow, ncol);
return y;
}
Демо
> Rcpp::sourceCpp("56606499/answer.cpp") ## filename I used
> vec2mat(sqrt(1:10), 2, 5)
[,1] [,2] [,3] [,4] [,5]
[1,] 1.000000 1.732051 2.236068 2.645751 3.000000
[2,] 1.414214 2.000000 2.449490 2.828427 3.162278
>