使用 Rcpp 删除矩阵行时出错

Posted

技术标签:

【中文标题】使用 Rcpp 删除矩阵行时出错【英文标题】:Get error when use Rcpp remove rows of matrix 【发布时间】:2018-09-14 05:30:35 【问题描述】:
#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 请求'

【问题讨论】:

请不要发布屏幕截图。这样做没有充分的理由,而且您可以更轻松地复制文本。 【参考方案1】:

两点:

请不要将错误消息作为图片发布。请改用文本。 如错误所示,shed_rows() 方法不返回任何内容。相反,它改变了它作用的矩阵,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))
*/

【讨论】:

以上是关于使用 Rcpp 删除矩阵行时出错的主要内容,如果未能解决你的问题,请参考以下文章

iOS Swift 2 - 删除 tableView 行时出错

更新asp.net GridView中的行时出错

使用 DataGrid 更新访问表时出错

使用 RcppArmadillo 在矩阵的列上应用函数有效,但在应用于行时返回错误

使用 jdbcTemplate 在嵌入式 hsqldb 中测试插入行时出错

使用 PDO 从数据库回显单行时出错