C++ gsl_直方图:值等于两个箱子之间的边,该值将分配给哪个箱子?
gsl_柱状图的哪个箱子的值恰好位于两个箱子之间的边缘? 例如,当我调用gsl_直方图_增量h,x时,x正好为0,而箱边为-0.2,0,0.2,0.4等。我会得到正范围0,0.2或负范围-0.2,0的增量吗C++ gsl_直方图:值等于两个箱子之间的边,该值将分配给哪个箱子?,c++,c,gsl,C++,C,Gsl,gsl_柱状图的哪个箱子的值恰好位于两个箱子之间的边缘? 例如,当我调用gsl_直方图_增量h,x时,x正好为0,而箱边为-0.2,0,0.2,0.4等。我会得到正范围0,0.2或负范围-0.2,0的增量吗 编辑:是的,我的范围是统一的。如果您的仓位分布是线性的,如您的示例所示,则这是从gsl-1.15/histogram/find.c执行的代码: /* optimize for linear case */ #ifdef LINEAR_OPT { double u = (x
编辑:是的,我的范围是统一的。如果您的仓位分布是线性的,如您的示例所示,则这是从gsl-1.15/histogram/find.c执行的代码:
/* optimize for linear case */
#ifdef LINEAR_OPT
{
double u = (x - range[0]) / (range[n] - range[0]);
i_linear = (size_t) (u * n);
}
if (x >= range[i_linear] && x < range[i_linear + 1])
{
*i = i_linear;
return 0;
}
#endif
注>=的用法意味着落在料仓边缘的值将包含在两个料仓的“上部”料仓中,与线性情况相同
可以通过运行示例并观察值添加到哪个bin来进行双重检查如果您的bin分布与示例中一样呈线性,则这是从gsl-1.15/histogram/find.c执行的代码:
/* optimize for linear case */
#ifdef LINEAR_OPT
{
double u = (x - range[0]) / (range[n] - range[0]);
i_linear = (size_t) (u * n);
}
if (x >= range[i_linear] && x < range[i_linear + 1])
{
*i = i_linear;
return 0;
}
#endif
注>=的用法意味着落在料仓边缘的值将包含在两个料仓的“上部”料仓中,与线性情况相同
可能通过运行示例并观察值添加到哪个bin来进行双重检查。增加条件Lgsl\u直方图。增加条件L注意0.2不能精确表示。注意0.2不能精确表示。+1用于查找实际源,哪个比谷歌搜索更权威:+1用于查找实际来源,哪个比谷歌搜索更权威: