Eigen是一个C++线性运算的模板库:他可以用来完成矩阵,向量,数值解等相关的运算。(Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.)
Eigen库下载 官网: http://eigen.tuxfamily.org/index.php?title=Main_Page
官网有时候连不上,提供一个csdn共享的Eigen最新的3.3.4版本下载地址 :https://download.csdn.net/download/xuleisdjn/10490984
Eigen库的使用相当方便,将压缩包中的Eigen文件夹拷贝到项目目录下,直接包含其中的头文件即可使用
Eigen官网有快速入门的参考文档:http://eigen.tuxfamily.org/dox/group__QuickRefPage.html
使用步骤
1、将文件夹eigen3.3.4放到合适位置,比如放到D:/test/中。
2、将eigen3.3.4的绝对路径或者相对路径添加到include path,
VS中 工程->属性->Configuration Properties->C/C++->General
在Additional Include Directories中添加目录D:/test/eigen3.3.4
QT中 pro文件中设置:INCLUDEPATH += D:/test/eigen3.3.4
3、在使用矩阵计算的文件中添加引用和命名空间,如下:
#include "Eigen/Dense"
using namespace Eigen;
4、定义矩阵,赋值,运算,读取。3*3矩阵乘法计算如下;void MatrixTest()
{
//定义矩阵
Matrix3f mP, mQ, mR;// 3x3 float matrix.
//矩阵赋值
mP << 1.5,2,3,
1.5,2,3,
1.5,2,3;
mQ << 1,2,3,
1,2,3,
1,2,3;
//矩阵运算
mR = mP*mQ;
//矩阵值获取
int nsize = mR.size(); //rows * columns
int nrow = mR.rows() ; // number of rows
int ncols = mR.cols() ;// number of columns
float fVc = 0 ;
for (int i = 0;i<nrow;i++)
{
for (int j = 0;j<ncols;j++)
{
fVc = mR(i,j);//第i行第j列数据
}
}
}
详见工程 https://download.csdn.net/download/xuleisdjn/10492251