如何获取Eigen::MatrixXd的行数和列数



我正在尝试遍历Eigen::MatrixXd matrix。但是,似乎没有返回列大小和行大小的函数。有人知道怎么做吗?

这应该有效。。。

#include <Eigen/Dense>
int main()
{
Eigen::MatrixXd matrix(3, 4);
// An explicit cast required on rows() and
// cols() to convert the output type of
// Eigen::Index into int
int r = static_cast<int>(matrix.rows());
int c = static_cast<int>(matrix.cols());
for (int i = 0; i < r; ++i)
{
for (int j = 0; j < c; ++j)
{
std::cout << matrix(i,j) << " ";
}
std::cout << std::endl;
}
return 0;
}

与@Icarus3相同的答案,但没有警告:

#include <Eigen/Dense>
int main()
{
Eigen::MatrixXd matrix(3, 4);
auto const rows = matrix.rows();
auto const cols = matrix.cols();
for (Eigen::Index i{0}; i < rows; ++i) {
for (Eigen::Index j{0}; j < cols; ++j) {
std::cout << matrix(i, j) << " ";
}
std::cout << "n";
}
std::cout << std::endl;
return 0;
}

最新更新