C++Eigen庫的配置和基本使用
阿新 • • 發佈:2019-01-03
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; }
執行結果