问题标签 [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.
c++ - 从 Eigen::Translation 构造 Eigen::Transform
我有以下代码:
这不编译,它不能转换Eigen::Translation3d
为Eigen::Affine3d
. 以下行导致相同的错误:
但这很好:
因此,看起来运算符工作正常,但未定义使用 an=
构建的构造函数。Eigen::Affine3d
Eigen::Translation3d
该文档对课程有以下说明Translation
:
此类并非旨在用于存储平移转换,而是使 Transform 对象的构造和更新更容易。
有什么方法可以声明上述函数,以便可以使用任何转换对象(如Translation
在 Eigen/Geomerty 中声明的)直接调用它(不使用临时变量)?
c++ - 为什么更改 std::vector 的分配器时初始化列表不可用?
在我的项目中,我将使用的点类型从Eigen::Vector2f
to更改为Eigen::Vector2d
并遇到对齐问题。
这是代码的简化版本:
我收到以下运行时错误:
正如 assert-message 所建议的,我阅读了有关Fixed-size vectorizable Eigen objects 所需对齐的信息。还有关于STL Containers的小节。似乎我有两个选择:
- 使用
Eigen::aligned_allocator
- 或使用
EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION
宏。
两种尝试都无法编译(使用 GCC 4.8.3 和 Clang 3.5 测试),因为编译器无法正确转换初始化列表。
这里更改的代码:
GCC 错误输出:
所以我想知道:
为什么更改分配器时初始化列表不可用
std::vector
?- 这是因为对齐吗?
- 我可以以某种方式对齐初始化列表吗?
为什么专业化版本失败?
- 这些是否缺少初始化列表功能?
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?
c++ - 检查特征库中矩阵中的所有条目是否为零
首先,我不确定这是否可能。我想检查特征库中的矩阵是否为零(注意:我必须声明它)。我的解决方案是检查所有元素是否为零。我的问题是在保持矩阵大小不变的情况下,是否有另一种方法来完成这项任务?
c++ - 将 GDB 与 Eigen C++ 库一起使用
我正在使用可从http://eigen.tuxfamily.org/下载的 Eigen C++ 库。这是一个 C++ 库,用于更轻松地处理矩阵和数组。我使用 g++ 编译器和 gdb 进行调试。但是,我发现在使用 gdb 时我无法打印 Matrix 的内容(由 Eigen 提供)。
c++ - 无法从 'const Eigen::GeneralProduct 转换'到'加倍'
每次计算此行时,我都会收到此错误
哪里Eigen::MatrixXd Z(3,3), b(3,1);
。我试过铸造但没有运气。有什么建议么?
c++ - 从矩阵中删除零行(优雅的方式)
我有一个零行的矩阵。我想删除零行。矩阵为 Nx3。我所做的很简单。我创建std::vector
其中每三个元素代表一行,然后将其转换为Eigen::MatrixXd
. 有没有一种优雅的方法来删除零行?
c++ - 如何从文件中读取特征矩阵?
我知道我可以将特征矩阵写入这样的文件:
再读一遍最简单的方法是什么?这似乎不起作用:
我收到以下编译器错误:
c++ - 在 Eigen 库中的大矩阵中创建子矩阵
我想构建以下矩阵
B & C
总是零。A
是一个单位矩阵。D
很棘手。这些是基于索引指定的。例如,如果索引是0
,那么D
是
如果索引是1
那么D
是
如何在 Eigen 库中完成此过程?我知道如何在 Eigen 中创建矩阵,但我不知道如何将它们构造为一个矩阵。
c++ - Eigen Sparse valuePtr 正在替换零,同时忽略有效值
当我尝试迭代valuePtr
稀疏矩阵时,我不明白我得到的结果。这是我的代码。
我不明白为什么我得到零,这是怎么回事?