Các documentation nói:Làm thế nào để chuyển đổi hàng vectơ thành vector cột trong Eigen?
... trong Eigen, vectơ chỉ là một trường hợp đặc biệt của ma trận, với một trong hai 1 hàng hoặc 1 cột. Trường hợp họ có 1 cột là phổ biến nhất; các vectơ như vậy được gọi là cột-vectơ, thường được viết tắt là vectơ chỉ. Trong trường hợp khác, nơi họ có 1 hàng , chúng được gọi là hàng vectơ.
Tuy nhiên chương trình này kết quả đầu ra kết quả unintuitive:
#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;
}
Output:
Rows: 1
Columns: 10
Rows: 1
Columns: 10
Đây có phải là một lỗi, hoặc tôi đang sử dụng thư viện không đúng cách?
tôi đã thêm một khẳng định cho sự phát triển chi nhánh của Eigen để bảo vệ chống lại việc sử dụng (sai) này. –