使用 Rcpp 删除矩阵行时出错
Get error when use Rcpp remove rows of matrix
#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]
using namespace Rcpp;
// [[Rcpp::export]]
arma::mat fed(arma::mat x){
arma::mat zz=x.shed_rows(0,2);
return(zz);
}
只想从矩阵中删除一些行,得到如下错误。
从 'void' 到非标量类型 'arma::Mat} requested'
的转换
两点:
- 请不要post错误消息作为图像。请改用文本。
- 如错误所示,
shed_rows()
方法没有 return 任何东西。相反,它改变了它作用的矩阵,c.f。 the documentation.
以下作品:
#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]
using namespace Rcpp;
// [[Rcpp::export]]
arma::mat fed(arma::mat x){
x.shed_rows(0,2);
return(x);
}
/*** R
fed(matrix(1:16, 4 ,4))
*/
#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]
using namespace Rcpp;
// [[Rcpp::export]]
arma::mat fed(arma::mat x){
arma::mat zz=x.shed_rows(0,2);
return(zz);
}
只想从矩阵中删除一些行,得到如下错误。 从 'void' 到非标量类型 'arma::Mat} requested'
的转换两点:
- 请不要post错误消息作为图像。请改用文本。
- 如错误所示,
shed_rows()
方法没有 return 任何东西。相反,它改变了它作用的矩阵,c.f。 the documentation.
以下作品:
#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]
using namespace Rcpp;
// [[Rcpp::export]]
arma::mat fed(arma::mat x){
x.shed_rows(0,2);
return(x);
}
/*** R
fed(matrix(1:16, 4 ,4))
*/