如何使用特征库计算曼哈顿距离?

use*_*891 3 c++ eigen

我有两个向量

int main(int argc, char *argv())
{
.........
Vector3f center(0.4,0.1,0.3) ;
Vector3f point(0.1,0.2,0.7);
.......
}
Run Code Online (Sandbox Code Playgroud)

如何使用特征库计算曼哈顿距离?我正在使用VS2010.

us2*_*012 6

这并不难,只要你知道曼哈顿距离是什么(虽然我还没有看到用于前3D矢量术语) - 只需要在相关职能征API文档一看,你会再发现以下作品:

Vector3f center(0.4,0.1,0.3) ;
Vector3f point(0.1,0.2,0.7);
Vector3f diff = center - point;
float manh_dist = diff.cwiseAbs().sum();
Run Code Online (Sandbox Code Playgroud)


gga*_*ael 6

另一种方法是观察曼哈顿距离对应于 L1 范数,可以使用通用 lpNorm 方法获得:

manh_dist = (center-point).lpNorm<1>();
Run Code Online (Sandbox Code Playgroud)

请参阅此页面以供参考。

  • +1。我实际上比我的更喜欢这个解决方案,但你应该做一个小的修正来实际回答这个问题:曼哈顿距离是“L_1”,而不是“L_infinity”。 (2认同)