【问题标题】:Row matrix minus vector with Rcpp使用 Rcpp 的行矩阵减去向量
【发布时间】:2012-03-01 14:09:29
【问题描述】:

我主要是 R 用户,但我想学习 Rcpp 以提高我的编码(速度)。所以我开始玩 C++Rcpp,我想我会尝试编写以下简单的函数,它采用矩阵行(即第一行)并从中减去一个向量 (m[1,]-vec)。

我知道这听起来很傻很简单,但我无法让它发挥作用。

代码 arma::mat beta = Rcpp::as(beta_);
arma::vec y = Rcpp::as(y_);
arma::rowvec S= beta.row(0);

arma::vec d = S - y;
return Rcpp::wrap(d);
'
fun m vec fun(m,vec)
fun(m, vec) 中的错误:

在 R 中,这将被执行为,
m[1,]-vec
0 2 2

【问题讨论】:

标签: c++ r rcpp


【解决方案1】:
library(RcppArmadillo)
library(inline)
code <- '
arma::mat beta = Rcpp::as<arma::mat>(beta_);
arma::rowvec y = Rcpp::as<arma::rowvec>(y_);
arma::rowvec S= beta.row(0);
arma::rowvec d = S - y;
return Rcpp::wrap(d);
'
fun <- cxxfunction(signature(beta_ ="matrix",y_="numeric"),code, plugin="RcppArmadillo")
m <- matrix(1:9,3)
vec <- c(1,2,5)
fun(m,vec)

【讨论】:

  • 谢谢巴蒂斯特。关于先前的问题,我仍在尝试锻炼循环……在任何一种情况下(失败/成功)我都会在网上发布。
猜你喜欢
  • 2014-12-07
  • 1970-01-01
  • 2014-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多