c++处理矩阵操作:Eigen库初步学习使用
来源:互联网 发布:淘宝的集分宝有什么用 编辑:程序博客网 时间:2024/05/29 02:09
前言:
Eigen 是一个线性算术的C++模板库,包括:vectors, matrices, 开源以及相关算法。功能强大、快速、优雅以及支持多平台,可以使用该库来方便处理一些矩阵的操作,达到类似matlab那样的快捷。现在已经发展到Eigen3了,目前最新版本为Eigen 3.1.2。
Eigen使用预备工作:
首先到Eigen官网上下载Eigen源码包,下载后解压完直接放到自己平时软件所在的目录下,不需要安装。Eigen下载地址为:http://eigen.tuxfamily.org/index.php?title=Main_Page。
然后当自己需要使用到Eigen时,在相应的集成开发环境下添加Eigen所在的头文件目录即可,比如我在Qt下开发,使用的是QtCreator,则需要在工程文件*.pro下添加如下代码:
INCLUDEPATH += C:\Qt\eigen
其它的开发环境比如VS可以参考本文后面给出的参考资料(第一个)。
关于Eigen的一些基本特征:
Eigen中的矩阵类型一般都是用类似MatrixXXX来表示,可以根据该名字来判断其数据类型,比如说’d’代表double并不是用来表示整数的,;‘f’代表float; ‘i’代表整数;‘c’代表complex,即复数;’d’表示dynamic,即表示矩阵中有些维数是不确定的,动态的……举例子比如说:Matrix2cd,表示的是2*2维的,其每个元素都是复数,复数的实部和虚部都为double类型。
Eigen中需要非常注意其数据类型,比如2个向量相乘如果得到一个矩阵,则向量中元素的类型和矩阵中元素的类型必须都相同,否则会出现错误。
下面举个例子来简单使用下Eigen库,本例子非常简单,主要是对Eigen的使用有个感性认识。实验代码如下:
#include <iostream>#include <vector>#include <Eigen/Eigen>using namespace Eigen;using namespace std;int main(){ Eigen::Vector2d v1, v2; //Eigen中的变量 v1 << 5, 6; //默认的向量为列向量 cout << "v1 = " << endl << v1 << endl; v2 << 4, 5 ; Matrix2d result = v1*v2.transpose(); cout << "result: " << endl << result << endl;}
实验结果如下:
参考资料:
C++矩阵处理工具——Eigen
http://eigen.tuxfamily.org/index.php?title=Main_Page
- c++处理矩阵操作:Eigen库初步学习使用
- C++矩阵处理库--Eigen初步使用
- C++矩阵处理库--Eigen初步使用
- C++矩阵处理库--Eigen初步使用
- C++矩阵处理库--Eigen初步使用
- C++矩阵处理库: Eigen使用
- Eigen矩阵操作库入门
- Qt使用Eigen矩阵库
- Eigen初步1:初步体验Eigen库
- C++ 矩阵库 eigen
- 【高性能】Eigen矩阵库使用事项
- Eigen矩阵运算库使用记录
- Eigen矩阵运算库使用记录
- C++矩阵处理工具-----Eigen
- eigen:C++矩阵处理工具
- C++矩阵库 Eigen
- Eigen矩阵运算库
- Eigen C++ 模板库,用来矩阵向量的线性操作
- android 基础
- centos下 apache-cassandra-2.0.9安装
- iOS跳转到系统设置页
- JS中字符串转化与日期的相互转化及比较时间先后
- 怎样发布dll到nuget库
- c++处理矩阵操作:Eigen库初步学习使用
- IOS 开发学习37 的Architecture与iphone版本对应关系
- php中getenv()和$_SERVER的区别
- java基础--面向对象
- Fragment hide,show方法后,会调用什么方法
- Permutation Sequence算法详解
- SQLSERVER2008R2之SQL查询语句
- HTTP 499 状态码 nginx下 499错误
- Java swing 实现字体滚动