rows()方法有什么作用?

时间:2014-06-30 07:42:48

标签: c++ eigen eigen3

在本征文档中,通常非常好,我看到了对rows() MatrixBase方法的引用。我目前正试图找到一种方法来获取矩阵中的行数而不知道矩阵的方向(行/列主要),因此简单地调用rows()非常方便。

但我无法在任何地方找到这些文件。这个方法是什么?它有什么作用?它只是为动态矩阵返回Eigen::Dynamic,还是知道行数?

关注the reference page for MatrixBase,我看到几个提及MatrixBase::rows()但没有链接......有什么想法吗?

2 个答案:

答案 0 :(得分:2)

rows()方法确实返回了行数。它在类EigenBase中定义,其中MatrixBase是子类。其文件位于http://eigen.tuxfamily.org/dox/structEigen_1_1EigenBase.html#a5552abd83dbd03c85cea6d61fd8875a5。找到它的一种方法是键入" rows"在Eigen文档右上角的搜索字段中,然后单击" rows"在出现的弹出窗口中;这将打开库中定义的rows()方法列表,包括EigenBase::rows()

文档没有明确说明,但rows()方法确实返回在运行时确定的实际行数。常量RowsAtCompileTime返回动态大小矩阵的Dynamic和静态大小矩阵的行数。

文档中MatrixBase::rows()的提及是过去的遗留物,需要消除。感谢您对文档的称赞,但我们知道可以对其进行改进。

答案 1 :(得分:1)

嗯,MatrixBase派生自DenseBase,后者又来自DenseCoeffBase(带模板参数等)。 row()函数在那里定义:http://eigen.tuxfamily.org/dox/structEigen_1_1EigenBase.html#a5552abd83dbd03c85cea6d61fd8875a5

Doxygen表示该函数返回"行数。"。