2016-08-31 2 views
1

Предположим, что у меня есть матрица Eigen::Matrix<double, 3, 3>, элементы которойКак расширить матрицу в Eigen?

1 2 3 
4 5 6 
7 8 9 

Как я могу расширить его

1 2 3 0 
4 5 6 0 
7 8 9 0 
0 0 0 1 

мне это нужно умножить 3D аффинные/проективные преобразования (4 на 4, в соответствии с типом Eigen :: Transform) с трехмерными матрицами вращения (3 на 3).

+0

ли StackOverflow правильная платформа? Как насчет http://math.stackexchange.com? – abksrv

ответ

2

Вы хотите conservativeResize:

Eigen::MatrixXf mat; 
mat.resize(3,3); 
mat << 1, 2, 3, 4, 5, 6, 7, 8, 9; 
std::cout << mat << "\n\n"; 
mat.conservativeResize(4,4); 
mat.col(3).setZero(); 
mat.row(3).setZero(); 
mat(3, 3) = 1; 
std::cout << mat << "\n\n"; 
+0

Есть ли статическая версия? –

+0

Статическая версия чего? –

Смежные вопросы