小编int*_*try的帖子

C++和R接口,获得输出

我刚开始学习R,因此陷入了琐碎的问题.我试图找出如何在R中输出值.在C++中我们只使用返回变量,但这似乎不是R的情况.假设我有一个带有4个输入参数的函数,将这些参数传递给c ++函数执行所需的计算,现在如果我想在R中加载这个myfun并从c ++函数获取输出,我需要做什么?以下是我尝试使用的模板.

extern "C" {
   SEXP myfun(SEXP S, SEXP A, SEXP B, SEXP C) { //will call this function from R.
     SEXP rate, dir, list, list_names; //declare variables

     PROTECT( rate = allocMatrix(REALSXP, 10, 2) ); //allocate 10x2 matrix of double type?
     PROTECT( dir = allocVector(INTSXP, 10) ); //allocated vector(10) of int type?

     double* p_rate = REAL(rate); //why do I need pointers? 
     int* p_dir = INTEGER(dir);
Run Code Online (Sandbox Code Playgroud)

//这里我调用一个C++函数来计算vector<vector<double> > someValvector<int> someVal2.

现在我想将这些值传递给rate和dir.

 for(int i =0; i < …
Run Code Online (Sandbox Code Playgroud)

c++ r rcpp

6
推荐指数
2
解决办法
924
查看次数

在R中定义一个矩阵并将其传递给C++

我有一个在R中定义的矩阵.我需要将这个矩阵传递给c ++函数并在C++中进行操作.示例:在R中,定义矩阵,

A <- matrix(c(9,3,1,6),2,2,byrow=T)
PROTECT( A = AS_NUMERIC(A) );
double* p_A = NUMERIC_POINTER(A);
Run Code Online (Sandbox Code Playgroud)

我需要将这个矩阵传递给C++函数,其中类型的变量'data' vector<vector<double>>将用矩阵A初始化.

我似乎无法弄清楚如何做到这一点.我想的是更复杂的方式然后我应该是,我打赌有一个简单的方法来做到这一点.

c++ r rcpp

5
推荐指数
2
解决办法
1965
查看次数

标签 统计

c++ ×2

r ×2

rcpp ×2