特征创建上/下对角矩阵

时间:2018-12-06 05:06:24

标签: c++ eigen

如何创建一个矩阵,该矩阵的元素沿任意指定的对角线不循环?

一个玩具示例将指定一个3x3的矩阵,并将索引设置为-1,0,1,并获得一个完整的矩阵,如下所示:

 1     1     0
 1     1     1
 0     1     1

1 个答案:

答案 0 :(得分:2)

diagonal方法接受一个索引(默认为零,表示主对角线)。负指数是对角线,正指数是对角线。例如:

#include <iostream>
#include <Eigen/Core>

using namespace Eigen;

int main()
{
    MatrixXd mat(3,3);

    mat.setZero();

    for (auto i : { -1, 0, 1 })
        mat.diagonal(i).setConstant(1);

    std::cout << mat << "\n\n";
    return 0;
}

输出您要查询的矩阵。