Rcpp对多个索引求和

时间:2014-04-26 07:13:46

标签: r rcpp

我想计算表格的函数:

$m_{jl}(x) = x + \gamma[j]*zeta[j,l] + sum_{k \neq j} zeta[j,k]$

使用Rcpp。我的问题是关于sum_{k \neq j} zeta[j,k]$ ..我希望能够做一些事情zeta[j,-j]。可能吗?我尝试了zeta(j,-)-zeta(j,j),但Rcpp不喜欢zeta(j,-)

1 个答案:

答案 0 :(得分:2)

你可以使用糖功能:

#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
double myFun(NumericMatrix x) {
   return sum(x)-sum(diag(x));
}

R:

A <- matrix(1:9,3)

sum(A)-sum(diag(A))
#[1] 26

myFun(A)
#[1] 26

我怀疑使用RcppEigen可以更快。