gpt4 book ai didi

eigen - Eigen 对角矩阵的构造

转载 作者:行者123 更新时间:2023-12-04 02:49:46 51 4
gpt4 key购买 nike

在本征中,我们可以创建一个矩阵

Matrix3f m;
m << 1, 2, 3,
4, 5, 6,
7, 8, 9;


如何创建像下面这样的对角矩阵

 3, 0, 0,
0, 8, 0,
0, 0, 6;


我不明白本征如何处理对角矩阵?这里仅对角线元素很重要。因此,Eigen是否保存了上面示例中的所有9个元素,或者Eigen仅保存了3个元素3、8、6。另外,如果特征值保存所有9个元素,那么是否有必要将矩阵定义为对角线,还是与定义普通3 * 3矩阵相同?

最佳答案

如果需要独立的对角矩阵,请构造DiagonalMatrix

DiagonalMatrix<double, 3> m(3, 8, 6);

// Input after construction
m.diagonal() << 3, 8, 6;


DiagonalMatrix的工作方式类似于普通矩阵,但仅存储对角线。

Vector3d v(1, 2, 3);
m * v; // 3 16 18


如果要使用现有矢量制作对角矩阵,请调用。 asDiagonal()。请注意, .diagonal()将对角线作为向量返回,因此 .diagonal().asDiagonal()提取矩阵的对角线部分并将其视为对角线矩阵。

关于eigen - Eigen 对角矩阵的构造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37492099/

51 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com