Egien介绍
Eigen是可以用来进行线性代数、矩阵、向量操作等运算的C++库,它里面包含了很多算法。它的License是MPL2。它支持多平台。
Eigen采用源码的方式提供给用户使用,在使用时只需要包含Eigen的头文件即可进行使用。之所以采用这种方式,是因为Eigen采用模板方式实现,由于模板函数不支持分离编译,所以只能提供源码而不是动态库的方式供用户使用。
下载Egien
地址:http://eigen.tuxfamily.org/index.php?title=Main_Page#Download
然后解压放在自己想放的位置就好嘞
配置Visual Studio 2019
新建个项目,或者打开自己想引入Eigen的项目
在解决方案资源管理器右键解决方案,打开设置
在C/C++的附加包含目录中加入解压完成的eigin库路径,这里我放在C盘的src文件夹中,根据自己的路径改就成。
然后就可以用嘞!
测试
不管那么多include一个Dense,试试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| #include<iostream> #include<Eigen/Dense> #include<cmath>
int main() { Eigen::Vector3f x(1.0f, 0.0f, 0.0f); Eigen::Vector3f v(1.0f, 2.0f, 3.0f); std::cout << "输出:v" << std::endl; std::cout << v << std::endl; std::cout << "输出:v+x" << std::endl; std::cout << v + x << std::endl; std::cout << "输出:2v" << std::endl; std::cout << 2.0f * v << std::endl; std::cout << "输出:v点乘x" << std::endl; std::cout << v.dot(x) << std::endl;
Eigen::Matrix3f i, j; i << 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0; j << 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0; std::cout << "输出:i" << std::endl; std::cout << i << std::endl; std::cout << "输出:i+j" << std::endl; std::cout << i + j << std::endl; std::cout << "输出:2i" << std::endl; std::cout << 2 * i << std::endl; std::cout << "输出:i*j" << std::endl; std::cout << i * j << std::endl; std::cout << "输出:i*v" << std::endl; std::cout << i * v << std::endl; return 0; }
|
输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| 输出:v 1 2 3 输出:v+x 2 2 3 输出:2v 2 4 6 输出:v点乘x 1 输出:i 1 2 3 4 5 6 7 8 9 输出:i+j 2 2 3 4 6 6 7 8 10 输出:2i 2 4 6 8 10 12 14 16 18 输出:i*j 1 2 3 4 5 6 7 8 9 输出:i*v 14 32 50
|
其他的就请详细阅读官方文档罢。