documentationと言う: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
これはバグですか、私は間違ってライブラリを使用していますか?
私が開発にアサートを追加しましたこの(誤った)使用に対して警戒するためにEigenの支店。 –