特征:从3D矢量c ++中减去标量

时间:2017-01-27 17:45:05

标签: c++ eigen

问题在于camera.cpp    t * n(2)=(x(2) - optical_center); 问题是24:22:二进制表达式的操作数无效('Scalar'(又名'double')和'Eigen :: Vector3d'(又名'Matrix')) 我理解它可能与矢量缩放器的subratcion有关,有人可以帮忙吗?

const void Camera_::t_from_point(const Eigen::Vector3d &n,
                                      Eigen::Vector3d &x ){
    double t;
    x(2) = 1;
    t* n(2) = (x(2) - optical_center); // this line is the problem

}

1 个答案:

答案 0 :(得分:1)

您的问题难以辨认,但从标题来看,我猜您正在寻找:

Vector3f v;
v << 1,2,3;
v.array() -= 1;
// v == [0 1 2]

见Eigen的array world