您的位置:首页 > 编程语言 > C语言/C++

C++Eigen库的配置和基本使用

2017-10-24 14:11 337 查看
1.配置

1.下载

http://bitbucket.org/eigen/eigen/get/3.2.5.tar.bz2

2.配置

文件夹名字较长,解压后可重命名,如我命名为eigen3,把D:\program\eigen3添加到visual studio项目属性里的库目录即可。在程序头部包含#include <Eigen/Dense>即可使用Eigen的各项功能了。



2.基本使用

// testEigen3.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <Eigen/Dense>
using namespace Eigen;
using namespace std;
int main()
{
MatrixXf a(4, 1);//必须要进行初始化
a = MatrixXf::Zero(4, 1);//初始化为0
cout << "初始化为0" << endl << a << endl;
a = MatrixXf::Ones(4, 1);//初始化为1,矩阵大小与初始化相关,因为是动态矩阵
cout << "初始化为1" << endl << a << endl;
a.setZero();//矩阵置零
a << 1, 2, 3, 4;//手动赋值
MatrixXf b(1, 4);
b.setRandom();//随机生成一个矩阵
MatrixXf c(3, 3);
c.setIdentity();
cout << "置单位矩阵:" << endl << c << endl;
c.setRandom();
MatrixXf d = c;
d = d.inverse();
cout << "矩阵c:" << endl << c << endl;
cout << "矩阵a:" << endl << a << endl;
cout << "矩阵b:" << b << endl;
cout << "访问a(0):" << endl << a(0) << endl;
cout << "矩阵相乘:" << endl << a*b << endl;
cout << "矩阵数乘:" << endl << 2 * a << endl;
cout << "矩阵c求逆d:" << endl << d << endl;
cout << "逆矩阵回乘:" << endl << d*c << endl;
cout << "逆矩阵d转置:" << endl << d.transpose() << endl;
Vector3d v(1, 2, 3);
Vector3d w(1, 0, 0);
cout << "向量相加:" << endl << v + w << endl;
return 0;
}


运行结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: