我尝试读出使用向量的标准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