- 矩陣拼接報(bào)錯(cuò):
/usr/include/eigen3/Eigen/src/Core/Block.h:141: Eigen::Block<XprType, BlockRows, BlockCols, InnerPanel>::Block(XprType&, Eigen::Block<XprType, BlockRows, BlockCols, InnerPanel>::Index, Eigen::Block<XprType, BlockRows, BlockCols, InnerPanel>::Index, Eigen::Block<XprType, BlockRows, BlockCols, InnerPanel>::Index, Eigen::Block<XprType, BlockRows, BlockCols, InnerPanel>::Index) [with XprType = Eigen::Matrix<double, -1, -1>; int BlockRows = -1; int BlockCols = -1; bool InnerPanel = false; Eigen::Block<XprType, BlockRows, BlockCols, InnerPanel>::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); //注意矩陣拼接之前必須要確定大小先较,否則會(huì)上述報(bào)錯(cuò)
B.resize(3, 9); //注意矩陣拼接之前必須要確定大小涨醋,否則會(huì)上述報(bào)錯(cuò)
C.resize(9, 3); //注意矩陣拼接之前必須要確定大小晴及,否則會(huì)上述報(bào)錯(cuò)
A << 1, 2, 3,
4, 5, 6,
7, 8, 9;
cout<<"A:"<<A<<endl;
B << A,A,A; //水平拼接
cout<<"B:"<<B<<endl;
//垂直拼接
C << A,
A,
A;
cout<<"C:"<<C<<endl;
-
輸出結(jié)果如下:
image.png