直接贴代码吧,使用的MatrixXd
和<<
运算符:
int main(int argc, char *argv[])
{
Eigen::MatrixXd B(2, 2);
B << 1, 2,
3, 4;
Eigen::MatrixXd C(2, 2);
C << 5, 6,
7, 8;
Eigen::MatrixXd D(2, 2);
D << 9, 10,
11, 12;
Eigen::MatrixXd H(2, 2);
H << 13, 14,
15, 16;
// Horizontal concatenation of B and C
Eigen::MatrixXd upper(B.rows(), B.cols() + C.cols());
upper << B, C;
std::cout << "Combined Matrix upper:\n" << upper << std::endl;
// Horizontal concatenation of D and H
Eigen::MatrixXd lower(D.rows()+ H.rows(), D.cols());
lower << D,
H;
std::cout << "Combined Matrix lower:\n" << lower << std::endl;
// Vertical concatenation of upper and lower
Eigen::MatrixXd A(B.rows() + D.rows(), B.cols() + C.cols());
A << B, C,
D, H;
std::cout << "Combined Matrix A:\n" << A << std::endl;
return 0;
}
效果如图