diff --git a/examples/Pose2SLAMExample_advanced.cpp b/examples/Pose2SLAMExample_advanced.cpp index 513aac98d..f52423784 100644 --- a/examples/Pose2SLAMExample_advanced.cpp +++ b/examples/Pose2SLAMExample_advanced.cpp @@ -77,8 +77,8 @@ int main(int argc, char** argv) { result.print("final result"); /* Get covariances */ - Matrix covariance1 = optimizer_result.marginalCovariance(x1); - Matrix covariance2 = optimizer_result.marginalCovariance(x2); + Matrix covariance1 = optimizer_result.marginalCovariance(x1).second; + Matrix covariance2 = optimizer_result.marginalCovariance(x2).second; print(covariance1, "Covariance1"); print(covariance2, "Covariance2"); diff --git a/gtsam/nonlinear/NonlinearOptimizer.h b/gtsam/nonlinear/NonlinearOptimizer.h index 374dee424..1a1eda310 100644 --- a/gtsam/nonlinear/NonlinearOptimizer.h +++ b/gtsam/nonlinear/NonlinearOptimizer.h @@ -209,8 +209,8 @@ namespace gtsam { /** * Return mean and covariance on a single variable */ - Matrix marginalCovariance(Symbol j) const { - return solver_->marginalCovariance((*ordering_)[j]).second; + std::pair marginalCovariance(Symbol j) const { + return solver_->marginalCovariance((*ordering_)[j]); } /**