文档说:
...在 Eigen 中,向量只是矩阵的一种特殊情况,具有 1 行或 1 列。他们有 1 列的情况是最常见的;这样的向量称为列向量,通常缩写为向量。在另一种情况下,它们有 1 行,它们被称为行向量。
然而,这个程序输出不直观的结果:
#include <eigen3/Eigen/Dense>
#include <iostream>
typedef Eigen::Matrix<double, 1, Eigen::Dynamic> RowVector;
int main(int argc, char** argv)
{
RowVector row(10);
std::cout << "Rows: " << row.rows() << std::endl;
std::cout << "Columns: " << row.cols() << std::endl;
row.transposeInPlace();
std::cout << "Rows: " << row.rows() << std::endl;
std::cout << "Columns: " << row.cols() << std::endl;
}
输出:
Rows: 1
Columns: 10
Rows: 1
Columns: 10
这是一个错误,还是我错误地使用了该库?