繁体   English   中英

Rcpp如何在每个单元格中给出给定长度的相同值的向量

[英]Rcpp how to give vector of a given length identical values in each cell

在下面的代码中,vectorTest function 的输出受 Tglobe 中项目数的限制。 如所写,output 为 101。如果 Tglobe = c(100, 101),则 output 为 101, 102。

我想要做的是创建一个大小为速度的向量,并用相同的值填充它。 换句话说,对于Tglobe <- 100 ,我希望 output 为 101、102、103、104、105

#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
Rcpp::NumericVector vectorTest(Rcpp::NumericVector Tglobe, Rcpp::NumericVector speed) {
  Rcpp::NumericVector test(speed.size(), NAN);
  test = Tglobe + speed;
  return(test);
}

/*** R
speed <- c(1,2,3,4,5)
Tglobe <- 100
vectorTest(Tglobe, speed)
*/

你的问题措辞有点奇怪。 所以我读它作为

  • 如何用给定的标量实例化一个向量? 你已经NAN了,尽管在
  • 如何添加两个向量? 你也已经回答了
  • 如何推广到输入向量(和返回矩阵)? 留作练习。

代码

#include <Rcpp.h>

// [[Rcpp::export]]
Rcpp::NumericVector vectorTest(double globe, Rcpp::NumericVector speed) {
    Rcpp::NumericVector globevec(speed.size(), globe);
    return globevec + speed;
}

/*** R
speed <- c(1,2,3,4,5)
Tglobe <- 100
vectorTest(Tglobe, speed)
*/

Output

> Rcpp::sourceCpp("~/git/stackoverflow/68784602/answer.cpp")

> speed <- c(1,2,3,4,5)

> Tglobe <- 100

> vectorTest(Tglobe, speed)
[1] 101 102 103 104 105
> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM