eigen3安装

官网eigen3

安装

#github 有个mirror,版本3.3.4 from 2017
git clone https://github.com/eigenteam/eigen-git-mirror

#安装
cd eigen-git-mirror
mkdir build
cd build
cmake ..
sudo make install

#安装后,头文件安装在/usr/local/include/eigen3/
typedef Matrix< std::complex<double> , 2 , 2 > Eigen::Matrix2cd
typedef Matrix< std::complex<float> , 2 , 2 > Eigen::Matrix2cf
typedef Matrix< double , 2 , 2 > Eigen::Matrix2d
typedef Matrix< float , 2 , 2 > Eigen::Matrix2f
typedef Matrix< int , 2 , 2 > Eigen::Matrix2i
typedef Matrix< std::complex<double> , 2 , Dynamic> Eigen::Matrix2Xcd
typedef Matrix< std::complex<float> , 2 , Dynamic> Eigen::Matrix2Xcf
typedef Matrix< double , 2 , Dynamic> Eigen::Matrix2Xd
typedef Matrix< float , 2 , Dynamic> Eigen::Matrix2Xf
typedef Matrix< int , 2 , Dynamic> Eigen::Matrix2Xi
typedef Matrix< std::complex<double> , 3 , 3 > Eigen::Matrix3cd
########
transpose  转置
conjugate  共轭
adjoint    伴随

第一个程序

#include <iostream>
#include <Eigen/Dense>

using namespace std;
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);

	cout << m << endl;
}

编译 g++ -I/usr/local/include/eigen3 1.cpp -o 1

#include <iostream>
#include <Eigen/Dense>

using namespace std;
using namespace Eigen;

int main()
{

	MatrixXd m = MatrixXd::Random(3,3); //随机数-1  ~1
	cout << m << endl;
	m = (m + MatrixXd::Constant(3,3,1.2))* 50;
	cout << " m2 =" << m << endl;

	MatrixXd n = MatrixXd::Constant(3,3,2);//常矩阵
	cout << " n =" << n << endl;

	VectorXd v(3);
	v << 1,2,3;

	cout << v<< endl;

	cout << "m * v" << endl << m * v << endl; //向量矩阵计算
	
}

使用确定维数的类VS 使用不确定维数,推荐使用固定维度的矩阵和数组,编译更快

#include <iostream>
#include <Eigen/Dense>

using namespace std;
using namespace Eigen;

int main()
{

	Matrix3d m = Matrix3d::Random();
	cout << "m=" << endl << m << endl;

	m = (m + Matrix3d::Constant(1.2)) * 50;
	cout << "m2" << endl << m << endl;

	Vector3d v(1,2,3);

	cout<< "v" << endl << v << endl;

	cout << "m * v" << endl << m * v << endl;
	
}

头文件包含最好

#include <eigen3/Eigen/Eigen>

CMakeLists.txt

include_directories(/usr/include/eigen3)

只需要包含头文件,没有依赖性和链接内容

  • 13
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值