问题标签 [eigen3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1665 浏览

c++ - 从 Eigen::Translation 构造 Eigen::Transform

我有以下代码:

这不编译,它不能转换Eigen::Translation3dEigen::Affine3d. 以下行导致相同的错误:

但这很好:

因此,看起来运算符工作正常,但未定义使用 an=构建的构造函数。Eigen::Affine3dEigen::Translation3d

该文档对课程有以下说明Translation

此类并非旨在用于存储平移转换,而是使 Transform 对象的构造和更新更容易。

有什么方法可以声明上述函数,以便可以使用任何转换对象(如Translation在 Eigen/Geomerty 中声明的)直接调用它(不使用临时变量)?

0 投票
1 回答
1569 浏览

c++ - 为什么更改 std::vector 的分配器时初始化列表不可用?

在我的项目中,我将使用的点类型从Eigen::Vector2fto更改为Eigen::Vector2d并遇到对齐问题。

这是代码的简化版本:

我收到以下运行时错误:

正如 assert-message 所建议的,我阅读了有关Fixed-size vectorizable Eigen objects 所需对齐的信息。还有关于STL Containers的小节。似乎我有两个选择:

  1. 使用Eigen::aligned_allocator
  2. 或使用EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION宏。

两种尝试都无法编译(使用 GCC 4.8.3 和 Clang 3.5 测试),因为编译器无法正确转换初始化列表。

这里更改的代码:

GCC 错误输出:

所以我想知道:

  • 为什么更改分配器时初始化列表不可用std::vector

    • 这是因为对齐吗?
    • 我可以以某种方式对齐初始化列表吗?
  • 为什么专业化版本失败?

    • 这些是否缺少初始化列表功能?
0 投票
2 回答
734 浏览

c++ - what does the rows() method do?

In the eigen documentation, which is generally pretty good, I see references to a rows() method of MatrixBase. I am currently trying to find a way to get the number of rows in a matrix without knowing the orientation (Row/Column-major) of the matrix so it would be really convenient to simply call rows().

But I can't find this documented anywhere. What is this method? What does it do? Does it just return Eigen::Dynamic for dynamic matrices, or does it know the number of rows?

Looking at the reference page for MatrixBase, I see several mentions of MatrixBase::rows() but no link... Any ideas?

0 投票
1 回答
11915 浏览

c++ - 检查特征库中矩阵中的所有条目是否为零

首先,我不确定这是否可能。我想检查特征库中的矩阵是否为零(注意:我必须声明它)。我的解决方案是检查所有元素是否为零。我的问题是在保持矩阵大小不变的情况下,是否有另一种方法来完成这项任务?

0 投票
2 回答
8200 浏览

c++ - 将 GDB 与 Eigen C++ 库一起使用

我正在使用可从http://eigen.tuxfamily.org/下载的 Eigen C++ 库。这是一个 C++ 库,用于更轻松地处理矩阵和数组。我使用 g++ 编译器和 gdb 进行调试。但是,我发现在使用 gdb 时我无法打印 Matrix 的内容(由 Eigen 提供)。

0 投票
2 回答
4045 浏览

c++ - 无法从 'const Eigen::GeneralProduct 转换'到'加倍'

每次计算此行时,我都会收到此错误

哪里Eigen::MatrixXd Z(3,3), b(3,1);。我试过铸造但没有运气。有什么建议么?

0 投票
3 回答
3077 浏览

c++ - 从矩阵中删除零行(优雅的方式)

我有一个零行的矩阵。我想删除零行。矩阵为 Nx3。我所做的很简单。我创建std::vector其中每三个元素代表一行,然后将其转换为Eigen::MatrixXd. 有没有一种优雅的方法来删除零行?

0 投票
1 回答
6050 浏览

c++ - 如何从文件中读取特征矩阵?

我知道我可以将特征矩阵写入这样的文件:

再读一遍最简单的方法是什么?这似乎不起作用:

我收到以下编译器错误:

0 投票
1 回答
178 浏览

c++ - 在 Eigen 库中的大矩阵中创建子矩阵

我想构建以下矩阵

B & C总是零。A是一个单位矩阵。D很棘手。这些是基于索引指定的。例如,如果索引是0,那么D

如果索引是1那么D

如何在 Eigen 库中完成此过程?我知道如何在 Eigen 中创建矩阵,但我不知道如何将它们构造为一个矩阵。

0 投票
1 回答
306 浏览

c++ - Eigen Sparse valuePtr 正在替换零,同时忽略有效值

当我尝试迭代valuePtr稀疏矩阵时,我不明白我得到的结果。这是我的代码。

我不明白为什么我得到零,这是怎么回事?