簡體   English   中英

如何修復此 Eigen 矩陣求逆溢出錯誤?

[英]How to fix this Eigen matrix inversion overflow error?

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

using namespace std;
using namespace Eigen;

int main() {

    Matrix <float, 2, 2 > J;
    J << 0.0f, -1.0f, 1.0f, 0.0f;

    Matrix <float, 2, 2 > I;
    I << 1.0f, 0.0f, 0.0f, 1.0f;

    Matrix <float, 2, 2 > A;
    A = 20.0f * I + 30.0f * J;

    Matrix <float, 2, 2 > B;

    B = 10.0f * I + 25.0f * J;

    Matrix <float, 2, 2 > C;
    C = B;
    cout << C.inverse() << endl;

    return 0;
}

它給出了一個我無法修復的錯誤。 我不知道這里“未解決的外部問題”是什么意思,如果是溢出錯誤如何解決?

如果您查看MatrixBase::inverse的文檔,您會發現它要求您包含Eigen/LU Godbolt 演示: https ://godbolt.org/z/ydfALn

如果你只包含Eigen/Core ,你只會得到一個inverse的前向聲明,編譯器會假設它會在別處實現並且鏈接器會失敗,因為它找不到符號。

包括Eigen/Dense也可以,因為它包括 ia Eigen/LU標頭。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM