Rcpp如何在每个单元格中给出给定长度的相同值的向量
Rcpp how to give vector of a given length identical values in each cell
在下面的代码中,vectorTest 函数的输出受 Tglobe 中项目数的限制。如所写,输出为 101。如果 Tglobe = c(100, 101),则输出为 101、102。
我想做的是创建一个大小为速度的向量,并用相同的值填充它。换句话说,对于 Tglobe <- 100
,我希望输出为 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
,甚至不是 C++ 常量) =27=]
- 我如何添加两个向量? 你也已经回答了
- 如何泛化到输入向量(和 return 矩阵)? 留作练习。
代码
#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)
*/
输出
> Rcpp::sourceCpp("~/git/Whosebug/68784602/answer.cpp")
> speed <- c(1,2,3,4,5)
> Tglobe <- 100
> vectorTest(Tglobe, speed)
[1] 101 102 103 104 105
>
在下面的代码中,vectorTest 函数的输出受 Tglobe 中项目数的限制。如所写,输出为 101。如果 Tglobe = c(100, 101),则输出为 101、102。
我想做的是创建一个大小为速度的向量,并用相同的值填充它。换句话说,对于 Tglobe <- 100
,我希望输出为 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
,甚至不是 C++ 常量) =27=] - 我如何添加两个向量? 你也已经回答了
- 如何泛化到输入向量(和 return 矩阵)? 留作练习。
代码
#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)
*/
输出
> Rcpp::sourceCpp("~/git/Whosebug/68784602/answer.cpp")
> speed <- c(1,2,3,4,5)
> Tglobe <- 100
> vectorTest(Tglobe, speed)
[1] 101 102 103 104 105
>