2013-05-09 41 views

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.

+13

Eigen là AWESOME. –

+0

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ế? –

+0

có, tất cả vectơ được sao chép trong 'm'. – ggael

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