Eigen庫下宣告變數時 謹記要初始化

2021-08-30 10:58:00 字數 740 閱讀 1232

eigen是乙個高層次的c ++庫,有效支援線性代數,矩陣和向量運算,數值分析及其相關的演算法。

初用時遇到乙個語法問題如下:

assertion `index >= 0 && index < size()' failed.

terminal完整報錯:

×××/src/eigen-3.3/eigen/src/core/densecoeffsbase.h:408: eigen::densecoeffsbase::scalar& 

eigen::densecoeffsbase::operator(eigen::index) [with derived = eigen::matrix;

eigen::densecoeffsbase::scalar = double; eigen::index = long int]: assertion `index >= 0 && index < size()' failed.

aborted (core dumped)

原因:定義新變數時,預設沒有初始化,需要指定變數的大小(size)。 譬如我的有問題的**為:

eigen::vectorxd ptsx_;

由於後續要利用,這裡實際上是要定義乙個動態向量。這裡只有宣告,它就是乙個空的向量,eigen會更嚴格地給出報錯。正確的做法是加入size。譬如:

eigen::vectorxd ptsx_(6);

Qt下Eigen矩陣函式庫的新增

之前在vs裡用eigen庫寫了一堆機械人姿態解算的矩陣運算,然而畢設要用到gui介面,聽大神說用qt比mfc有前途,所以著手用qt寫。但是在qt下eigen庫的新增上浪費了一點時間,所以索性再花點時間寫個部落格來幫助像我一樣的小白實現qt下eigen庫的新增。用qt隨便建乙個gui工程,在.pro下...

Qt下Eigen矩陣函式庫的新增

用qt隨便建乙個gui工程,在.pro下新增如下 路徑就是解壓eigen的那個路徑 includepath d library eigen eigencpp檔案中新增 qt下eigen矩陣函式庫的新增 include include主函式內部新增 eigen matrixxd aaa 2,3 aaa...

變數宣告和資料庫連線

解決問題 高階語言如何與資料庫連線和斷開連線 如何將宿主程式的變數傳遞給sql語句 1.變數的宣告和使用 1 嵌入式sql語句中變數的宣告 exec sql begin declare section char vsname 10 specname 10 張三 int vsage exec sql ...