我的官網地址
原文鏈接Qt中的矩陣計算庫eigen
在實際工程中由於需要使用矩陣計算,網上搜羅了下,發現 eigen 庫比較靠譜,這裏簡要介紹下食用方法,以及如何避免運行斷言
下載庫
引入到 Qt 工程中
- 將 源碼中的 的 Eigen 目錄拷貝到 Qt 工程的目錄
- 目錄中新建 eigen.pri 文件內容如下
INCLUDEPATH += $$PWD
使用
- 新建 C++類
- 在頭文件中添加
#include <Geometry>
- cpp 文件示例
using namespace Eigen;
//.......
//一維矩陣
VectorXf V(20);
//賦值,一維元素引用和賦值
for(int i = 0; i < 20; i++){
V(i) = i;
}
MatrixXf M(10, 20);
//矩陣賦值和引用
for(int i = 0; i < 10; i++){
for(int j = 0; j < 20; j++){
M(i, j) = (i * 20 + j);
}
}
//矩陣相乘
VectorXf V2(10);
V2 = M * V;
PS
如果不慎失誤矩陣的維數不一致可能導致運行時 assert 錯誤,經過查看源代碼發現可以定義 EIGEN_NO_DEBUG 即可,更簡單的方法爲在 pri 文件中添加語句,修改後的 pri 文件如下
#CONFIG(debug, debug|release):{
#}
#else{
##release版本
# DEFINES += EIGEN_NO_DEBUG
#}
DEFINES += EIGEN_NO_DEBUG
INCLUDEPATH += $$PWD