【发布时间】:2020-10-22 06:32:55
【问题描述】:
我想编写一个类似“linspace”的函数,用 Rcpp 在 R 中创建等间隔向量。这里的 num_dis 是我想要该向量的间隔数,即 a=0,b=10,num_dis = (10-0)/(1e-5)+1=1000001。当我放 linspace(0,10,1000001) 时,向量长度正确为 1000001;但是,当我这样写时:linspace(0,10,10/(1e-5)+1),它返回一个长度为 100000 的向量。对于像 1e-3,1e-6 等这样的增量,它看起来不错。我不太确定会发生什么?
NumericVector linspace(double a,double b,int num_dis) {
NumericVector u(num_dis);
for (int i = 0; i < num_dis; i++) {
u[i] = a + i * ((b - a) / (num_dis-1));
}
return u;
}
【问题讨论】: