Eigen教程2-Dense
来源:互联网 发布:java web项目重新编译 编辑:程序博客网 时间:2024/05/16 10:03
转载 http://blog.csdn.net/xuezhisdc/article/details/54620082
安装Eigen
- 无需安装。
- 只需将Eigen位置添加到include路径中。
Demo 1
- MatrixXd,X表示动态大小,d表示双精度。
- Eigen/Dense定义了MatrixXd类型的所有成员函数等。该头文件定义的类和函数都位于Eigen名字空间中。 *
// 参考链接:http://eigen.tuxfamily.org/dox/GettingStarted.html#include <iostream>#include <Eigen/Dense>using Eigen::MatrixXd;int main(){ MatrixXd m(2,2); //声明2x2的动态的双精度矩阵 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++ -I /path/to/eigen/ my_program.cpp -o my_program
- 将Eigen文件夹放到/usr/local/include/目录下,可以使用下面的命令编译:
g++ my_program.cpp -o my_program
Demo2
- 矩阵和向量的运算
// 参考链接:http://eigen.tuxfamily.org/dox/GettingStarted.html#include <iostream>#include <Eigen/Dense>using namespace Eigen;using namespace std;int main(){ MatrixXd m = MatrixXd::Random(3,3); //声明和初始化3x3的矩阵,并随机初始化 m = (m + MatrixXd::Constant(3,3,1.2)) * 50; // 矩阵加法,矩阵和标量积 cout << "m =" << endl << m << endl; VectorXd v(3); //声明3x1的向量,默认列向量 v << 1, 2, 3; //初始化 cout << "m * v =" << endl << m * v << endl; //输出矩阵和向量的积}
// 参考链接:http://eigen.tuxfamily.org/dox/GettingStarted.html#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;}
- 小结:
- 上面的两段程序功能相同。
- 第一段程序使用动态大小矩阵,矩阵大小是在运行时确定的。
- 第二段程序使用固定大小矩阵,矩阵大小是在编译时确定的。
- 随机函数的取值范围是[-1, 1]。
- 固定大小的矩阵的2个优点:
- 编译器能生成更快的代码;
- 支持更加严格的检查。
阅读全文
0 0
- Eigen教程2-Dense
- Eigen教程2 - 入门
- 无法打开 Eigen/Dense 等文件
- eigen教程
- Eigen教程1 - 基础
- Eigen教程1
- Eigen教程-sparse
- Eigen教程7 - Eigen和Matlab的比较
- Eigen
- Eigen
- Eigen教程3 - 稀疏矩阵操作
- Eigen教程5 - 求解稀疏线性方程组
- Eigen教程6 - Matrix-free solvers
- 线性代数Eigen库安装使用教程
- Eigen教程-Solving Sparse Linear Systems
- Eigen 3.2.2出现了
- Eigen教程4 - 稀疏矩阵快速参考指南
- Dense Sift
- Neo4j 出现此提示(no changes ,no records)和解决方法
- 判断一个链表是否为回文结构
- MySQL创建联结
- 2017年山东省机器人比赛 双足竟步 arduino源代码(删去了关键步态程序 gongneng1 和 gongneng2)
- Java设计模式(一) 简单工厂模式不简单
- Eigen教程2-Dense
- Python 学习之路 001
- 中国打脸“三大国际信用评级霸权”硝烟再起
- 并发编程修十:阻塞队列
- 洛谷 3932 Chtholly!
- http协议学习-缓存的实现原理
- Angular4-在线竞拍应用-引入第三方的库
- BigDecimal用法详解
- a标签中有点击事件