Eigen庫(kù)打印操作

#include <Eigen/Dense>
Eigen::Matrix3d mat(2,2);
cout<<mat(0,0)<<endl;
  1. 塊操作

MatrixXd M = MatrixXd::Zero(50, 50);
cout << M.block(2, 3, 5, 6) << endl; //指的是M矩陣從(2,3)位置開(kāi)始,下數(shù)5個(gè)元素,右數(shù)6個(gè)元素

M.block(a, b, m ,n)指的是從下標(biāo)(a,b)的元素開(kāi)始,向下m個(gè)元素,向右n個(gè)元素。

  1. 矩陣和C++數(shù)組轉(zhuǎn)換
MatrxXd M = MatrixXd::Zero(50,50);
//矩陣轉(zhuǎn)數(shù)組
double* test = M.data();
//數(shù)組轉(zhuǎn)矩陣
Map<MatrixXd>tM(test, 50, 50);

注意,這兩種轉(zhuǎn)換方式都是淺拷貝,改變?cè)磾?shù)據(jù)的值拷貝后對(duì)象的值也會(huì)改變。

  1. 矩陣輸出到文件

Eigen重載了<<,直接輸出到文件即可。

MatrixXd M = MatrixXd::Zero(5, 5);
ofstream fout("test.txt");
fout << M;
fout.close();
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容