Tôi có bốn vectơ cột. Tôi cần phải nối thêm chúng để tạo ra bốn ma trận bốn. Có một nhà xây dựng hoặc một cái gì đó cho điều đó?Làm thế nào để bạn tạo một ma trận ra khỏi vectơ trong eigen?
10
A
Trả lời
17
Bạn cũng có thể thêm chúng bằng cách sử dụng cú pháp dấu phẩy initializer:
m << v1, v2, v3, v4;
Ma trận m mus có được thay đổi kích thước đúng cách đầu tiên.
3
Một kiểm tra nhanh chóng trên docs:
Vector4f v1(1,0,0,0);
Vector4f v2(0,1,0,0);
Vector4f v3(0,0,1,0);
Vector4f v4(0,0,0,1);
Matrix4f m;
m.row(0) = v1;
m.row(1) = v2;
m.row(2) = v3;
m.row(3) = v4;
std::cout << m << std::endl;
đầu ra:
1,0,0,0
0,1,0,0
0,0,1,0
0,0,0,1
Eigen là AWESOME. –
Bản sao này có phải là vectơ 'v1',' v2', 'v3' và' v4' không? Có thể tạo ma trận 'm' bằng cách sử dụng dữ liệu trong vectơ mà không sao chép chúng? có lẽ một tham chiếu const hoặc một cái gì đó như thế? –
có, tất cả vectơ được sao chép trong 'm'. – ggael