c++ - GSL 插值错误,值必须是 x 值必须是单调递增的

标签 c++ c gsl

你好,我的问题是我的数据集是单调递增的,但在数据的末尾,它看起来像下面这样,其中一些 x[i-1] = x[i] 如下图。这会导致在 GSL 中引发错误,因为它认为这些值不是单调递增的。是否有针对此问题的解决方案、修复或解决方法?

这些值已经是 double 的,这个特定的数据集从 9.86553e-06 开始到 .999999 结束

唯一的解决方案是抵消 for 循环中的每个值吗?

0.999981
0.999981
0.999981
0.999982
0.999982
0.999983
0.999983
0.999983
0.999984
0.999984
0.999985
0.999985
0.999985

最佳答案

我遇到了类似的问题。我已经通过一个简单的条件运算符(if 语句)删除了重复项,这并不影响最终结果(由 MatLab 检查)。不过,这可能有点特定于问题。

关于c++ - GSL 插值错误,值必须是 x 值必须是单调递增的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12479644/

相关文章:

c++ - 不能在 dlib cpp 文件中包含 JPEG_SUPPORT header

c++ - 为什么 C++ 不会打印 char 的内存地址,但会打印 int 或 bool?

c - C中的原子结构?

c - GSL:在样条线之间共享加速器

c - 将矩阵提升为复数幂

c - 尝试将插值函数与 C GSL 集成

c++ - 在 MacOS 上使用 QOpenGLDebugLogger

C++ 枚举不是的成员

c - OpenMP 中奇怪的 float 行为

c - 如何使用 C 打印文件的最后 n 行?