documentation mówi:Jak przekonwertować wektor wiersza na wektor kolumny w Eigen?
... w Eigena, wektory tylko szczególnym przypadkiem matryc, z każdym rzędem 1 lub 1 kolumny. Przypadek, w którym kolumny mają 1 , jest najbardziej rozpowszechniony; takie wektory nazywane są wektorami kolumnowymi, , często określanymi skrótem jako wektory. W drugim przypadku, gdy mają wiersz 1 , są one nazywane wektorami wierszowymi.
ten program wyjścia Wyniki nieintuicyjne Jednakże:
#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;
}
wyjściowa:
Rows: 1
Columns: 10
Rows: 1
Columns: 10
Jest to błąd, czy używam biblioteki nieprawidłowo?
I dodaje dochodzić do rozwoju gałąź Eigena, aby chronić się przed tym (niewłaściwym) użyciem. –