使用 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))
*/