Matrix 特征矩阵是否有行迭代,这样我可以逐行迭代矩阵?

Matrix 特征矩阵是否有行迭代,这样我可以逐行迭代矩阵?,matrix,iterator,eigen,eigen3,Matrix,Iterator,Eigen,Eigen3,问题是关于。对于C++中的迭代器,我认为自然矩阵中有一行(或列)迭代器是自然的,这样我就可以逐行地迭代矩阵,例如如下的内容: Matrix4f m; auto it = m.line_cbegin(); while(it != m.line_cend()) { ... some_operation(*it) //*it is expected to be a Vector4d object ... it++; } 那么在Eigen中有这样的迭代器吗?我已经检查了一些Eigen

问题是关于。对于C++中的迭代器,我认为自然矩阵中有一行(或列)迭代器是自然的,这样我就可以逐行地迭代矩阵,例如如下的内容:

Matrix4f m;
auto it = m.line_cbegin();
while(it != m.line_cend()) {
  ...
  some_operation(*it)  //*it is expected to be a Vector4d object
  ...
  it++;
}
那么在Eigen中有这样的迭代器吗?我已经检查了一些Eigen文档,但没有找到任何文档,所以我在这里询问,以防我错过它。谢谢。

您需要获得Eigen的devel分支的详细信息,然后只需按照说明执行即可:


当然,这个示例意味着您也可以在
m.rowwise()上调用
begin()/end()
cbegin()/cend()
,谢谢!这是个好主意。我已经吃了失眠药,所以我现在必须睡觉了。但我明天会检查这项技术。别担心,我很可能会以赞成票接受你的回答。再次感谢你,盖尔。非常感谢你的回答和文档链接。我很高兴看到迭代器将被添加到下一版本的Eigen中。期待它。
*当按照@ggael的答案编写时,它当然是类似于
RowVector4d
的对象(它将是对应行的可读写视图)。
for(auto row : m.rowwise())
  some_operation(row);