C++調(diào)用Eigen庫(kù)技巧的直觀理解_第1頁(yè)
C++調(diào)用Eigen庫(kù)技巧的直觀理解_第2頁(yè)
C++調(diào)用Eigen庫(kù)技巧的直觀理解_第3頁(yè)
C++調(diào)用Eigen庫(kù)技巧的直觀理解_第4頁(yè)
C++調(diào)用Eigen庫(kù)技巧的直觀理解_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、IDE(集成開(kāi)發(fā)環(huán)境)設(shè)置將 Eigen 程序文件夾添加到包含文件中 .包含文件#include 包含命名空間using name Eigen;下標(biāo)類(lèi)型與C+相同,從0開(kāi)始.默認(rèn)矩陣元素排列列主元初始化程序中賦值 MatrixXd A; A 程序中賦值 MatrixXd A; A 1, 2, 3,4, 5, 6,7, 8, 9;/ Initialize A. The elements can also be / matrices, which are stacked along cols / and then the rows are stacked.快速生成常用矩陣和向量MatrixXd A

2、=MatrixXd:Zero(m, n); /matlab 中的 A=zeros(m,n)MatrixXd A; A.setZero(m, n);MatrixXd A=MatrixXd:Ones(m, n); /matlab 中的 A=ones(m, n)MatrixXd A; A.setOnes(m, n);MatrixXd A=MatrixXd:Identity(m, n); /matlab 中的 A=eye(m,n)MatrixXd A; A.setIdentity(m, n);MatrixXd A; A=C*MatrixXd:Ones(m, n); /matlab 中的 A=C*one

3、s(m,n)MatrixXd A; A=MatrixXd:Constant(m,n,C);MatrixXd A(m,n); A=fill(C);VectorXd a_vec=VectorXd:Constant(m, C); /matlab 中的 a_vec=C*ones(m,1) VecotrXda_vec=VectorXd:LinSpaced(n, x1, x2); /matlab 中 的 a_vec=linspace(x1, x2, n).;VectorXd a_vec; a_vec.setLinSpaced(n, x1, x2);轉(zhuǎn)置、共軛和共軛轉(zhuǎn)置MatrixXd B=A.adjoin

4、t(); /matlab 中的 B=AMatrixXcd B=A.conjugate(); /matlab 中的 B=conj(A);MatrixXd B=A.transpose(); /matlab 中的 B=A.提取矩陣尺度A.size();/matlab 中的 length(A(:)A.rows();/matlab 中的 size(A,1)A.cols();/matlab 中的 size(A,2)變矩陣尺度A.resize(m1,n1); /matlab 中的 A=reshape(A,m1,n1);產(chǎn)生隨機(jī)矩陣MatrixXd A=MatrixXd:Random(m, n); /matl

5、ab 中的 A=2*rand(m,n)-1MatrixXd A; A.setRandom(m, n); /matlab 中的 A=2*rand(m,n)-1MatrixXcd A=MatrixXcd:Random(m,n); /生成實(shí)部和虛部均在(-1,1)中的隨機(jī) 復(fù)數(shù)矩陣點(diǎn)乘和點(diǎn)除MatrixXd C=A.cwiseProduct(B); /matlab 中的 C=A.*BVectorXd c=a_vec.cwiseProduct(b); /matlab 中的 c=a_vec.*bMatrixXd C=A.cwiseQuotient(B); /matlab 中的 C=A./BMatrixX

6、d B=A.cwiseInverse(); /matlab 中的 B=1./A;矩陣按內(nèi)存順序單指數(shù)索引A(i); /matlab 中的 A(i+1)矩陣與標(biāo)量運(yùn)算(逐元素運(yùn)算)MatrixXd C=A.array()+k; /matlab 中的 C=A+kMatrixXd C=A.array()/B.array(); /matlab 中的 C=A./BMatrixXd B=A.array().sin(); /matlab 中的 sin(A)MatrixXd B二A.array().pow(s); /matlab 中的 AsMatrixXd B=A.array().log(); /matlab

7、 中的 log(A)向量點(diǎn)乘求和a_vec.dot(b_vec); /matlab 中的 sum(a.*b)VectorXd、RowVectorXd 與 MatrixXd 的關(guān)系VectorXd 等價(jià)于 Matrix; RowVectorXd 等價(jià)于 Matrix;MatrixXd 等價(jià)于 Matrix.生成高維矩陣Matrix A(m,n); /注意,此時(shí)矩陣數(shù)據(jù)的存儲(chǔ)空 間不再連續(xù)生成行主元矩陣Matrix E(m,n);令矩陣為自身的轉(zhuǎn)置A.transposeInPlace();函數(shù)首字母大小寫(xiě)的可能情形 成員函數(shù)首字母大寫(xiě); 友元函數(shù)首字母小寫(xiě).矩陣塊和向量塊提取A.block(i,

8、j, row_num, col_num); /matlab A(i+1:i+row_num,j+1:j+col_num)x_vec.segment(i, n); /matlab 中的 x_vec(i+1:i+n)對(duì)角操作VectorXd a_vec=A.diagonal(); /matlab 中的 a_vec=diag(A)MatrixXd A=a_vec.asDiagonal(); /matlab 中的 A=diag(a_vec)自運(yùn)算符A+=B; /matlab 中的 A=A+B最小和最大操作double x=A.minCoeff(); /matlab 中的 x=min(A(:)doubl

9、e x=A.maxCoeff(); /matlab 中的 x=max(A(:)double x二A.minCoeff(&r,&c); /matlab 中的s, i = min(R(:); ind2sub(size(R), i)double x二A.maxCoeff(&r,&c); /matlab 中的s, i = max(R(:); ind2sub(size(R), i)求和和求積操作double x=A.sum(); /matlab 中的 x=sum(A(:)VectorXd vec=A.colwise().sum(); /matlab 中的 vec=sum(A)VectroXd vec=A

10、.rowwise().sum(); /matlab 中的 vec=sum(A,2) double x=A.prod(); /matlab 中的 x=prod(A(:)VectorXd vec=A.colwise().prod(); /matlab 中的 vec=prod(A)中的r, c =r, c =VectroXd vec=A.rowwise().prod(); /matlab 中的 vec=prod(A,2) 中的r, c =r, c =double x=vec.norm(); /matlab 中的 x=norm(vec)矩陣數(shù)據(jù)類(lèi)型轉(zhuǎn)換MatrixXf B=A.cast()矩陣數(shù)據(jù)類(lèi)型

11、轉(zhuǎn)換MatrixXf B=A.cast()MatrixXi B=A.cast();實(shí)部和虛部提取MatrixXd real_A=A.real();MatrixXd imag_A=A.imag();/matlab 中的 B=single(A)/matlab 中的 B=int32(A)/matlab 中的 real_A=real(A)/matlab 中的 imag_A=imag(A)解線性方程組x二A.ldlt() .solve(b); /要求對(duì)稱(chēng)正定,需#include x=A.ll t().solve(b); /要求對(duì)稱(chēng)半正定,需 #include x=A.lu().solve(b); /穩(wěn)定快速,需 #include x=A.qr().solve(b); /要求沒(méi)有 pivoting,需#include x=A.svd().solve(b); /穩(wěn)定但非常慢,需 #inc

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論