线性代数Eigen库安装使用教程
来源:互联网 发布:软件删除system32 编辑:程序博客网 时间:2024/04/30 07:17
Eigen安装使用教程(转)
整理下Eigen库的教程,参考:http://eigen.tuxfamily.org/dox/index.html
简介
Eigen是C++中可以用来调用并进行矩阵计算的一个库,简单了说它就是一个c++版本的matlab包。
安装
下载eigen:http://eigen.tuxfamily.org/index.php?title=Main_Page#Download
Eigen只包含头文件,因此它不需要实现编译,只需要你include到你的项目,指定好Eigen的头文件路径,编译项目即可。而且跨平台,当然这是必须的。
方案一
下载后,解压得到文件夹中,Eigen子文件夹便是我们需要的全部;如果你想使用Eigen暂不支持的特性,可以使用unsupported子文件夹。可以把Eigen/unsupported复制到任何你需要的地方。
方案二 安装改包,其实就是把Eigen/unsupported的内容复制到“/usr/local/include/eigen3”下。在解压的文件夹下,新建build_dir,执行。
cd build_dir cmake ../ make install
详见INSTALL文件即可。
模块和头文件
Eigen库被分为一个Core模块和其他一些模块,每个模块有一些相应的头文件。 为了便于引用,Dense模块整合了一系列模块;Eigen模块整合了所有模块。一般情况下,include<Eigen/Dense>
就够了。
一个简单的例子
#include <iostream>#include <Eigen/Dense>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;}
编译并执行:g++ main.cpp -I /usr/local/include/eigen3/ -o maincpp
3 -12.5 1.5
Eigen头文件定义了许多类型,所有的类型都在Eigen的命名空间内。MatrixXd代表的是任意大小(X*X)的矩阵,并且每个元素为double类型。
例2: 矩阵和向量
再看另一个例子
#include <iostream>#include <Eigen/Dense>using namespace Eigen;using namespace std;int main(){ MatrixXd m = MatrixXd::Random(3,3); m = (m + MatrixXd::Constant(3,3,1.2)) * 50; cout << "m =" << endl << m << endl; VectorXd v(3); v << 1, 2, 3; cout << "m * v =" << endl << m * v << endl;}
输出为:
m = 94 89.8 43.549.4 101 86.888.3 29.8 37.8m * v =404512261
程序中定义了一个任意大小的矩阵,并用33的随机阵初始化。MatrixXd::Constant
创建一个33的常量矩阵。
VectorXd表示列向量,并用逗号初始化语法来初始化。
在看同样功能的代码
#include <iostream>#include <Eigen/Dense>using namespace Eigen;using namespace std;int main(){ Matrix3d m = Matrix3d::Random(); m = (m + Matrix3d::Constant(1.2)) * 50; cout << "m =" << endl << m << endl; Vector3d v(1,2,3); cout << "m * v =" << endl << m * v << endl;}
MatrixXd表示是任意尺寸的矩阵,Matrix3d直接指定了3*3的大小。Vector3d也被直接初始化为[1,2,3]'的列向量。
使用固定大小的矩阵或向量有两个好处:编译更快;指定大小可以进行更为严格的检查。当然使用太多类别(Matrix3d、Matrix4d、Matrix5d...)会增加编译时间和可执行文件大小,原则建议使用4及以内的。
- 线性代数Eigen库安装使用教程
- 基于C++模板的线性代数库---Eigen
- ubuntu eigen 安装与使用
- ubuntu 环境 安装 使用 eigen
- ubuntu eigen 安装与使用
- ubuntu eigen 安装与使用
- ubuntu 环境 安装 使用 eigen
- Eigen——线性代数运算的C++模板库
- visual studio 2010 下配置线性代数库Eigen
- eigen库使用心得
- Eigen库的使用
- Eigen库使用
- Eigen库使用注意事项
- eigen教程
- ubuntu 下Eigen库安装
- ubuntu 下Eigen库安装
- Qt使用Eigen矩阵库
- Eigen库使用报错
- Android P2P 连接对话框按键
- JS 图片压缩上传并在iOS中矫正方向
- 数据压缩实验五
- ORACLE RMAN恢复测试脚本
- 【技巧】LESS CSS 框架简介
- 线性代数Eigen库安装使用教程
- 我新开的博客,提醒我现在也是一个做技术的人了。
- Java 线程安全
- leetcode题解-84. Largest Rectangle in Histogram
- Key 与 Value 并发的Cache 设计
- 消息中间件理解总结
- 532. K-diff Pairs in an Array
- tez hive llap安装
- TextInputLayout与TextInputEditText详解