我嘗試讀出使用向量的標準C++動態容器創建的3D矩陣中的元素。 下面是我如何初始化我的矩陣:從標準向量到特徵/密集向量的矩陣
typedef vector<vector<vector<ClassA> > > matrix3D;
在我命名爲 「ClassA的」 類,我有以下公共成員:
double a, b, c;
然後在我的主文件中填入矩陣:
double varA=M_PI; double varB=varA; double varC=varA;
matrix3D[i][j][k].a = varA;
matrix3D[i][j][k].b = varB;
matrix3D[i][j][k].c = varC;
現在,當我讀雙打到載體中使用本徵/密庫中創建,載體的類型成爲矩陣:
Vector3d vectorEigen;
vectorEigen << matrix3D[i][j][k].a, matrix3D[i][j][k].b, matrix3D[i][j][k].c;
和vectorEigen
變成了這種類型的變量Eigen::Matrix<double, 3,1,0,3,1>
有沒有人知道我在這裏錯過了什麼?
C++是一種靜態類型語言。變量不會「變成」不同的類型。 –
我認爲有關'vectorEigen'類型的問題不再是真正的問題。也許你正在摔跤一些其他問題?實際上,你不需要'vectorEigen << matrix3D [i] [j] [k] .a << matrix3D [i] [j] [k] .b << matrix3D [i] [j] [k]。 c;'代替vectorEigen << matrix3D [i] [j] [k] .a,matrix3D [i] [j] [k] .b,matrix3D [i] [j] [k] .c;' – WhiteViking
'vectorEigen << matrix3D [i] [j] [k] .a << matrix3D [i] [j] [k] .b << matrix3D [i] [j] [k] .c;'給我一個錯誤,不幸的是:( )當我調用以Vector3d作爲輸入參數的函數時會出現問題,將'vectorEigen'替換爲函數的輸入參數會導致編譯器發生抱怨,原因是輸入類型'Eigen :: Matrix'是undefined –
bull