矩阵拼接报错:
/usr/include/eigen3/Eigen/src/Core/Block.h:141: Eigen::Block::Block(XprType&, Eigen::Block::Index, Eigen::Block::Index, Eigen::Block::Index, Eigen::Block::Index) [with XprType = Eigen::Matrix; int BlockRows = -1; int BlockCols = -1; bool InnerPanel = false; Eigen::Block::Index = long int]: Assertion a_startRow >= 0 && blockRows >= 0 && a_startRow <= xpr.rows() - blockRows && a_startCol >= 0 && blockCols >= 0 && a_startCol <= xpr.cols() - blockCols' failed.
解决方法
MatrixXd A;
MatrixXd B;
MatrixXd C;
A.resize(3, 3); //注意矩阵拼接之前必须要确定大小,否则会上述报错
B.resize(3, 9); //注意矩阵拼接之前必须要确定大小,否则会上述报错
C.resize(9, 3); //注意矩阵拼接之前必须要确定大小,否则会上述报错
A << 1, 2, 3,
4, 5, 6,
7, 8, 9;
cout<
B << A,A,A; //水平拼接
cout<
//垂直拼接
C << A,
A,
A;
cout<
输出结果如下:
image.png