freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

eigen:矩陣處理工具-文庫吧資料

2025-07-01 06:36本頁面
  

【正文】 或矩陣的局部11. 10. Q().triangularViewUpper()。R(m_matrix_B)。7. HouseholderQRMatrixXf6. //QR分解5. return4. (m_iN=0)view plaincopy1. boolstd::endl。std::endlQ*Rstd::cout17. std::endlQstd::cout16. std::endlstd::endl。std::endl()std::endlstd::cout14. std::endlAstd::cout13. HouseholderQR()。=MatrixXd11. =MatrixXd10. qr。2,4,5。6. 2,1,1,5. A1,1,1,4. Matrix3d3. 2. {QR2() Eigen的QR分解非常繞人,它總共提供了下面這些矩陣的分解方式:DepositionMethodRequirements on the matrixSpeedAccuracyPartialPivLUpartialPivLu()Invertible+++FullPivLUfullPivLu()None+++HouseholderQRhouseholderQr()None+++ColPivHouseholderQRcolPivHouseholderQr()None+++FullPivHouseholderQRfullPivHouseholderQr()None+++LLTllt()Positive definite++++LDLTldlt()Positive or negative semidefinite+++++由于我只用到了QR分解,而且Eigen的QR分解開始使用時確實不容易入手,因此這里只提供了householderQR的分解方式的演示代碼:[cpp] , v =1468106QR分解輸出結(jié)果為:(3) =1233() = 456after 39。12. }v239。(1,4)after11. cout*=endl。endl3()endl3()9. cout(3)8. cout5,3,1,7. v6. Eigen::ArrayXf5. {main()std。3. usingiostreamview plaincopy1. include 獲取向量的前n個元素:(n)。 endl。m14. coutmthethirdintofirsttimesadding(0)。312. (2)Row:endl。mendlm:theHere10. coutm(3,3)。4. intnamespace2. includeEigen/Dense下面的代碼段用于演示獲取矩陣的指定行列:[cpp]注意:(1)需與獲取矩陣的行數(shù)/列數(shù)的函數(shù)( rows(), cols() )的進行區(qū)別,不要弄混淆。2)矩陣也提供了獲取其指定行/列的函數(shù),其實獲取某行/列也是一種特殊的獲取子塊。endl。endl(0,0,i,i)16. coutsizeBlock15. cout14. {++i)3。i1。i13. forendl。middlein10. 13,14,15,16。9. 9,10,11,12,8,6,3,1,7. m6. Eigen::MatrixXf5. {main()std。3. usingiostreamview plaincopy1. include定義(2)中block(p, q)可理解為一個p行q列的子矩陣,該定義表示從原矩陣中第(i, j)開始,獲取一個p行q列的子矩陣,返回該子矩陣組成的臨時 矩陣對象,原矩陣的元素不變。3. p,q(i,j)。2. (1)s multiply mat by itselfNow mat is mat: 7 1015 22本節(jié)主要涉及Eigen的塊操作以及QR分解矩陣的塊操作1)矩陣的塊操作有兩種使用方法,其定義形式為:[cpp]std::endl。matmat:\nmatmat*mat。16. matbymultiplyLet39。15. std::coutisstd::endl。()*vu^T*v:\nHere13. std::coutisstd::endl。mat*umat*u:\nHere11. std::coutisv(2,0)。9. Vector2d8. 3,2,mat。4. intnamespace2. includeiostream輸出結(jié)果為:Here is the matrix a (,) (,) (,) (,)Here is the matrix a^T(,) (,)(,) (,)Here is the conjugate of a (,) (,) (,) (,)Here is the matrix a^*(,) (,)(,) (,)矩陣相乘、矩陣向量相乘矩陣的相乘,矩陣與向量的相乘也是使用操作符*,共有*和*=兩種操作符,其用法可以參考如下代碼:[cpp]matrixisendl。()a\nconjugateisendl。()a^T\ntheHere3. coutmatrixisMatrixXcf::Random(2,2)。a例如下面的代碼所示:[cpp]adjointInPlace()adjoint()來完成,注意這些函數(shù)返回操作后的結(jié)果,而不會對原矩陣的元素進行直接操作,如果要讓原矩陣的進行轉(zhuǎn)換,則需要使用響應的InPlace函數(shù),例如:transposeInPlace()成員函數(shù)transpose(),求矩陣的轉(zhuǎn)秩、共軛矩陣、伴隨矩陣。Now v =246需要注意:在Eigen中,算術(shù)操作例如 “操作符+”并不會自己執(zhí)行計算操作,他們只是返回一個“算術(shù)表達式對象”,而實際的計算則會延遲到后面的賦值時才進行。std::endl。v=\nNow14. std::cout*=std::endl。*=Doing12. std::cout*v11. std::cout*a10. std::cout9. Vector3d8. 3,2,a。4. intnamespace2. includeiostream對于a*A、A/a、A*=a、A /=a也是一樣,例如下面的代碼:[cpp]Now a =3 54 8v + w v =146另外,矩陣還提供與標量(單一個數(shù)字)的乘除操作,表示每個元素都與該標量進行乘除操作。std::endl。vwv=\n+w(1,0,0)。v(1,2,3)。std::endl。a=\nNow16. std::cout+=std::endl。+=Doing14. std::coutba13. std::cout+ba12. std::cout11. 1,3,b(2,2)。4。1,7. a6. Matrix2d5. {main()Eigen。3. usingEigen/Denseview plaincopy1. includeBC;一元操作符表示對矩陣取負(矩陣中對應元素取負,返回一個臨時矩陣):還需特別注意的是:如果特別大的矩陣使用了固定大小的靜態(tài)矩陣則可能造成棧溢出的問題本文主要是Eigen中矩陣和向量的算術(shù)運算,在Eigen中的這些算術(shù)運算重載了C++的+,,*,所以使用起來非常方便。std::endl。()x()ofisb。4. a3. MatrixXfsizeisa(2,2)。例如下面的代碼段:[cpp]resize()函數(shù)會析構(gòu)掉原來的數(shù)據(jù),因此調(diào)用resize()函數(shù)之后將不能保證元素的值不改變。重置矩陣大小當前矩陣的行數(shù)、列數(shù)、大小可以通過rows(),cols()和size()來獲取,對于動態(tài)矩陣可以通過resize()函數(shù)來動態(tài)修改矩陣的大小.需注意:(1)32. }=tmp_A。m_Vector_A30. }29. ++j。26. j。jpSrc[i][j]tmp_B(iPos,4)24. **=j。pSrc[i][j]tmp_B(iPos,2)22. *=pSrc[i][j]tmp_B(iPos,0)20. 19. *=j=0。=0。j=0,i5)。MatrixXf11. VectorXf10. =false。=||iWidthpSrc(NULLintintInitData(int=1。3. int2. MatrixXfview plaincopy1. VectorXfm。5. std::cout8,5,2,m。另外也可以使用下標進行復制,例如下面兩段代碼:代碼段1[cpp]其輸出結(jié)果為:Here is the matrix m: 3 1 Here is the vector v:43針對向量還提供[]操作符,注意矩陣則不可如此使用,原因為:在C++中m[i, j]中逗號表達式 “i, j”的值始終都是“j”的值,即m[i, j]對于C++來講就是m[j]。16. }vectoris1。v(0)14. v(1)=v(2)。std::endl。mm:\ntheHere11. std::cout+=1。9. m(0,1)8. m(1,0)=m(2,2)。4. intnamespace2. includeiostream可參看如下代碼:[cpp]4)向量只是一個特殊的矩陣,其一個維度為1而已,如:type
點擊復制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1