当前位置:  开发笔记 > 编程语言 > 正文

在Rcpp中操作NumericMatrix

如何解决《在Rcpp中操作NumericMatrix》经验,为你挑选了0个好方法。

我是Rcpp的新手.我已经读过Hadley Wickham和所有Rcpp小插曲的Advanced R,但我无法想象如何操纵NumericMatrix对象.

有没有简单的方法来做这样的R代码

mat <- matrix(1:9,3,3)
v <- matrix(2,2,2)
mat[1,] <- NA
mat[,3] <- 0.5
mat[2:3,2:3] <- v

除了循环行和列并设置每个的值mat[i,j]


编辑3:好的,让我们再试一次.

这是我的cpp文件:

#include 
using namespace Rcpp;    

// [[Rcpp::export]]
NumericMatrix lissage_incapC(NumericMatrix mat) {
// INIT
  NumericMatrix x(mat.nrow()+1,mat.ncol()+1);
  NumericMatrix out(mat.nrow(),mat.ncol());

  // Here i want to set x first row and first column to NA_REAL //**1
  for(int i=0; i1))
        y.row(0) = NumericVector::get_na(); //problem here

      out(i,j-1) = 1/2*x(i,j) + 1/2 * mean(na_omit(y));

      }
    }
  out(_,out.ncol()) = 0.5; // Problem here
  out(Range(0,7),_) = out(8,_); // Problem here
  return out;
}

我在评论中指出了我的问题.在第一个(//**1)中,我必须编写两个循环来设置第一行和第一列.我要问的是:有没有更简单的方法可以做到,就像我们在R中做的那样?

这是我在代码的评论中指出的同样问题.

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有