特征三角视图的问题

Issue with Eigen's triangularView

本文关键字:问题 视图 三角 特征      更新时间:2023-10-16

我正在使用特征C 库的三角形视图功能来跳过类似矩阵的上三角形部分的计算:

C.triangularView<Lower>() = A*B;

这是我打算的工作,但是当我使用" strictlylylower"时为了跳过对角线的计算,结果矩阵似乎损坏了。这是示例代码:

#include <iostream>
#include <Eigen/Dense>
using namespace Eigen;
using namespace std;
int main()
{
   MatrixXi A, B, C, D;
   A = MatrixXi::Ones(5,5);
   B = MatrixXi::Ones(5,5);
   C = MatrixXi::Zero(5,5);
   D = MatrixXi::Zero(5,5);
   C.triangularView<Lower>() = A*B;
   D.triangularView<StrictlyLower>() = A*B;
   cout << "n C = n " << C << endl;
   cout << "n D = n " << D << endl;
}

输出:

C = 
5 0 0 0 0
5 5 0 0 0
5 5 5 0 0
5 5 5 5 0
5 5 5 5 5
D = 
5 5 5 5 0
0 5 5 5 0
0 0 5 5 0
0 0 0 5 0
0 0 0 0 5

现在C看起来如我所期望的。但是D应该是相同的,除了对角度为0。D为什么看起来像这样?

这似乎是特征的错误。您可以尝试下载最新版本。如果那不起作用,您可以做的最好的事情就是填写错误报告。