gpt4 book ai didi

特征:不能对 Vector2i 使用 norm()

转载 作者:行者123 更新时间:2023-12-02 00:08:28 25 4
gpt4 key购买 nike

我不能这样做:

Vector2i vec(0, 1, 2);
cout << vec.norm() << endl;

因为它给出了一个编译器错误,其中提到: THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES在一些失败的断言中。

我可以:
Vector2i i_vec(0, 1, 2);
Vector2f f_vec;
f_vec = i_vec.cast<float>();
cout << f_vec.norm() << endl;

这显然有效。

问题:任何原因为什么 norm没有为 VectorXi 定义方法?

也许 Eigen 使用了 Vector 的元素类型确定 norm() 的返回类型(在这种情况下,不会为 norm() 的返回类型定义 int 是有意义的)?

只是好奇。

最佳答案

如果我记得norm()的 Action 功能正确,它需要一些输入的平方根。显然,平方根在许多情况下是非整数。另一方面,如果我记得 eigen 包的逻辑,一旦你声明了一个特定元素的矩阵( int, double, complex<double> ),它只适用于这种类型的元素。所以你的建议完全正确。

关于特征:不能对 Vector2i 使用 norm(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16918244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com