2016年10月01日 19:45:58
阅读数:2615
刚刚学这个,因为C++搞一些机器学习涉及很多线性代数运算的任务.之前都是用python,现在来玩一把新的东东.
很多矩阵运算自己写很累也不一定有别人的快.所以肯定是找库了.线性运算的库很多.这个评价比较好,而且很方便.自己做一些底层的东西的时候也可以调用它.
特点很多,速度,支持类型,简单高效什么的我就不打广告了.
官网:http://eigen.tuxfamily.org/index.php?title=Main_Page
里面有和其他库对比的benchmark.可以参考一下.
官网下载:http://eigen.tuxfamily.org/index.php?title=Main_Page
至于版本什么的,一般推荐下载最新的稳定版本吧…下载下来是一个压缩包,直接解压缩然后丢到你喜欢的文件夹位置里面就行.同时,也可以到文档的位置下载离线文档,方便之后参考.http://eigen.tuxfamily.org/dox/
至此,你应该有一个解压好的文件夹了.
(其中分别是文档和eigen的库文件夹.觉得后面那个很啰嗦的可以改文件夹名字…..)
然后在库文件夹中最重要的就是那个叫Eigen的文件夹啦.
这个文件夹中就存放着常用的头文件.你可以自己看一下这里面都有一些什么文件.
然后至于安装,这个库不需要安装.只要在使用的时候载入头文件就行!非常方便!
So…..这部分就没有了.所以这个库很方便….
既然不用安装,那么就看怎么利用这个库来写代码吧….
以codeblocks为例(其他的类推),首先创建一个项目.项目创建好了之后直接把方头文件的文件夹加入搜索目录就行了.
核心就是永远在编译的时候编译器能够找得到你的头文件就行.其他方法只能够能够找得到,都行!!!
然后直接用一个代码测试一下(暂时可以不用管这个代码是什么意思,虽然很容易就看出来了)…..
代码:
#include
#include
using Eigen::MatrixXd;
int main()
{
MatrixXd m(2,2);
m(0,0) = 3;
m(1,0) = 2.5;
m(0,1) = -1;
m(1,1) = m(1,0) + m(0,1);
std::cout << m << std::endl;
}
然后编译,直接就通过了..很简单…
之所以没有碰到什么麻烦,是因为真的没有什么麻烦可以碰….
整个部分就结束了…是不是很简单…..