如何使用CERES :: Cupicinterpolator与不在均匀网格上的数据
How do I use ceres::CubicInterpolator with data not on a uniform grid
CERES求解器允许使用分段的Cubic Hermite Interpolant插值,我正在尝试使用它为特征创建一个立方体插入。
ceres/examples
的此片段显示了如何设置插装器。调整它为我的用例提供玩具示例:
const int kNumSamples = 4;
double x[kNumSamples];
x[0] = 12.5; x[1] = 13.9; x[2] = 14.0; x[3] = 21.4;
double values[kNumSamples];
for (int i = 0; i < kNumSamples; ++i) {
values[i] = (x[i] - 4.5) * (x[i]- 4.5);
}
Grid1D<double> array(values, 0, kNumSamples);
CubicInterpolator<Grid1D<double> > interpolator(array);
我相信可以在给定数据点之间的位置进行评估:
double x_interp = 1.5;
double y_interp;
double dydx_interp;
double yi = interpolator_.Evaluate(x_interp, &y_interp, &dydx_interp);
,但是grid1d对象没有x值是什么的概念。它总是假定数据在常规网格上,从某个索引开始(在这种情况下为0(,并包含 kNumSamples
(在这种情况下为4(样本。
问题
如何使Grid1D
了解实际输入X位置?另外,我应该对x_interp
值进行什么映射以获取正确的答案?
感谢您的任何帮助!
CubicinterPolator无法处理不均匀分布的数据。您将必须自己使用类似立方样条的东西才能做到这一点。
相关文章:
- 防止主数据类型C++的隐式转换
- 用于访问容器<T>数据成员的正确 API
- 嵌套在类中时无法设置成员数据
- 使用流处理接收到的数据
- 使用对象文件读取三角形数据网格
- C++中的多维数据集:从 std::vector 的 2D 数据到 std::vector 的 2D 网格的最干净方法?
- 我无法将数据从数据网格列传输到 C# 中的数组以获取文本框建议收集数据
- 在网格视图中显示数据 - 基于 MFC c++ 对话框的应用程序
- 用于存储网格(将具有负索引)的数据结构
- 如何使用CERES :: Cupicinterpolator与不在均匀网格上的数据
- 半边数据结构网格 - OpenMesh C++ - 边中的边界半边
- CGAL:从表面网格中获取人脸数据
- 使用C 中的单元格 /图块 /网格进行碰撞检测的最佳数据结构
- MFC 中是否有任何类似数据网格视图的控件
- 如何将自动递增的主键的数据从 sql 服务器获取到我的数据网格视图
- VTK:从 c++ 中的 vtu 非结构化网格中提取单元数据
- .dae文件如何存储网格数据
- 在英特尔 CPU 上将最近的 8 个顶点插值到随机采样点时,对称 3D 网格的最有效数据布局
- 如何将用户输入的数据从数据网格视图获取到窗口窗体图
- OpenGL照明数据网格浪费