【发布时间】:2022-11-15 00:20:57
【问题描述】:
在这个 Ceres 示例中,使用了 SizedCostFunction<1,1>。我想将其更改为CostFunction,因为我不知道编译期间输入参数的大小。我发现使用set_num_residuals(int) 可以轻松更改残差数,但是我找不到设置输入数的方法。能告诉我怎么设置吗?
class QuadraticCostFunction
: public SizedCostFunction<1 /* number of residuals */,
1 /* size of first parameter */> {
public:
bool Evaluate(double const* const* parameters,
double* residuals,
double** jacobians) const override {
double x = parameters[0][0];
// f(x) = 10 - x.
residuals[0] = 10 - x;
if (jacobians != nullptr && jacobians[0] != nullptr) {
jacobians[0][0] = -1;
}
return true;
}
};
【问题讨论】:
标签: c++ ceres-solver