Eigen應用於Qt 常用操作總結

2021-09-23 22:19:08 字數 1850 閱讀 7613

eigen應用於qt:常用操作總結

參考:eigen的官網解釋:

在建構函式前使用

using namespace std;

using namespace eigen;

pro:

includepath+=g:\eigen-eigen-b70bf4fad467
注意:這個資料夾路徑,到包含以下檔案的資料夾名即可

需要包含的預處理內容 

#include#include
目錄向量和矩陣的建立

初始化單位陣的定義

常見運算

固定尺寸的陣列和向量:

//矩陣1

matrix2d m;

m(0,0)= 1;

m(0,1)= 2;

m(1,0)= 3;

m(1,1)= 4;//函式賦值的方法一

cout注意:在進行定義的時候,關鍵字中都出現了具體的數字,比如matrix2d中的2,vector3d中的3。

這種定義矩陣和向量的方式叫:使用固定尺寸(例如matrix4f

但是,當矩陣行或者列的大小,向量的大小超過16,使用固定尺寸的定義方式就有些欠妥當,小於16,沒有問題,固定尺寸的定義方式更有優勢

尺寸超過16,我們使用動態尺寸,如下

矩陣:matrixxd part_1(20,20);

定義形式:matrixxd name_for_matrix(row,col);

向量:

vectorxd g(21);
定義形式:vectorxd name_for_vector(size); 

初始化方式很多:

向量可以在定義的時候就初始化,也可以在定義後初始化:

vector3d vecs(1.0, 2.0, 3.0);//向量賦值方法

cout<

//矩陣1

matrix2d m;

m(0,0)= 1;

m(0,1)= 2;

m(1,0)= 3;

m(1,1)= 4;//函式賦值的方法一

//矩陣2

matrix2d md;

md<<4,3,

2,1;

cout當然也可以迴圈賦值:

matrixxd a(4,4);

for(int i = 0;i<4;i++)

}cout<

matrixxd e = matrixxd::identity(4,4);//對角陣,全是1

matrixxd name_for_matrix = matrixxd::identity(size,size);

a = a*a;//矩陣和矩陣相乘

cout<

cout<

vector4d vecs1(1.0, 2.0, 3.0, 4.0);

vecs1 = vecs1.transpose().eval();

點乘:

vector4d vecs1(1.0, 2.0, 3.0, 4.0);

vector4d vecs2(1, 1.0, 1.0, 1.0);

result = vecs1.dot(vecs2);

python應用於網路 python應用於網路通訊

專案需要用到採用python實現維護測試工具,測試物件是linux裝置,需要在pc端採用python獲取linux裝置相關資訊 一 採用udp獲取普通資訊 udpserver socket af inet,sock dgram udpserver.bind ip,port data,client a...

bitmap應用於排序

這種方法只適合 資料不重複,已知資料範圍 的情況來自於 程式設計珠璣 所謂的bit map就是用乙個bit位來標記某個元素對應的value,而key即是該元素。由於採用了bit為單位來儲存資料,因此在 儲存空間方面,可以大大節省。如果說了這麼多還沒明白什麼是bit map,那麼我們來看乙個具體的例子...

MATLAB應用於濾波

1.什麼是影象的直方圖 2.直方圖均衡化 直方圖均衡化 histogram equalization 又稱直方圖平坦化,直方圖 拉伸是通過對比度拉伸對直方圖進行調整,從而 擴大 前景和背景灰度的差別,以達到增強 對比度的目的,這種方法可以利用線性或 非線性的方法來實現直方圖均衡化則通過使用累積函式對...