程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> c++處理矩陣操作:Eigen庫初步學習使用

c++處理矩陣操作:Eigen庫初步學習使用

編輯:關於C++

前言:

  Eigen 是一個線性算術的C++模板庫,包括:vectors, matrices, 開源以及相關算法。功能強大、快速、優雅以及支持多平台,可以使用該庫來方便處理一些矩陣的操作,達到類似matlab那樣的快捷。現在已經發展到Eigen3了,目前最新版本為Eigen 3.1.2。

 

  Eigen使用預備工作:

  首先到Eigen官網上下載Eigen源碼包,下載後解壓完直接放到自己平時軟件所在的目錄下,不需要安裝。Eigen下載地址為:http://eigen.tuxfamily.org/index.php?title=Main_Page。

  然後當自己需要使用到Eigen時,在相應的集成開發環境下添加Eigen所在的頭文件目錄即可,比如我在Qt下開發,使用的是QtCreator,則需要在工程文件*.pro下添加如下代碼:

INCLUDEPATH += C:\Qt\eigen 

  其它的開發環境比如VS可以參考本文後面給出的參考資料(第一個)。

 

  關於Eigen的一些基本特征:

  Eigen中的矩陣類型一般都是用類似MatrixXXX來表示,可以根據該名字來判斷其數據類型,比如說’d’代表double並不是用來表示整數的,;‘f’代表float; ‘i’代表整數;‘c’代表complex,即復數;’d’表示dynamic,即表示矩陣中有些維數是不確定的,動態的……舉例子比如說:Matrix2cd,表示的是2*2維的,其每個元素都是復數,復數的實部和虛部都為double類型。

  Eigen中需要非常注意其數據類型,比如2個向量相乘如果得到一個矩陣,則向量中元素的類型和矩陣中元素的類型必須都相同,否則會出現錯誤。

 

  下面舉個例子來簡單使用下Eigen庫,本例子非常簡單,主要是對Eigen的使用有個感性認識。實驗代碼如下:

復制代碼
#include 
#include 
#include 

using namespace Eigen;
using namespace std;

int main()
{
    Eigen::Vector2d v1, v2;     //Eigen中的變量
    v1 << 5, 6;   //默認的向量為列向量
    cout  << "v1 = " << endl << v1 << endl;
    v2 << 4, 5 ;
    Matrix2d result = v1*v2.transpose();
    cout << "result: " << endl << result << endl;
}
復制代碼

 

  實驗結果如下:

  \

 

  參考資料:

C++矩陣處理工具——Eigen

http://eigen.tuxfamily.org/index.php?title=Main_Page

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved