Matrix 如何在本征矩阵中求对角矩阵

Matrix 如何在本征矩阵中求对角矩阵,matrix,eigen,diagonal,Matrix,Eigen,Diagonal,我有一组对角矩阵 a1=(2 0 0 3) a2=(3 0 0 5) 如何创建第三个矩阵a=a1:a2,其中:是concat运算符I,e a=(2 0 3 0 0 3 0 5) 我使用对角矩阵类创建了a1和a2矩阵 我无法使用块运算符,因为它未在对角矩阵类中实现 此外,我无法将矩阵可视化为 cout << a1 << endl; 给我一个编译错误 您可以将对角线连接到目标的对角线中: DiagonalMatrix<double,D

我有一组对角矩阵

a1=(2 0
    0 3)

a2=(3 0
    0 5) 
如何创建第三个矩阵a=a1:a2,其中:是concat运算符I,e

a=(2 0 3 0
   0 3 0 5) 
我使用对角矩阵类创建了a1和a2矩阵

我无法使用块运算符,因为它未在对角矩阵类中实现

此外,我无法将矩阵可视化为

cout << a1 << endl; 

给我一个编译错误

您可以将对角线连接到目标的对角线中:

DiagonalMatrix<double,Dynamic> a3(4);
a3.diagonal() << a1.diagonal(), a2.diagonal();

首先,应创建密集或稀疏矩阵:

Matrix<double, 2, 4> result;
cout << a1.toDenseMatrix() << endl;
通过将对角矩阵转换为密集矩阵,可以将其可视化:

Matrix<double, 2, 4> result;
cout << a1.toDenseMatrix() << endl;

不,我不想连接到目标矩阵的对角线。我想把它们一个接一个地排列,如上所述。我也有问题,在可视化的矩阵在屏幕上。如果我用cout