1. 程式人生 > >C++Eigen庫的配置和基本使用

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

1.配置

1.下載

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;
}


執行結果