我需要将数据存储在类似 3D 的结构中,但是我一直依赖 Eigen 库来处理我的代码中的矩阵结构,而 Eigen 不提供 3D 矩阵。我发现了两种可能的解决方法:
int x,y,z;
Eigen::Matrix<Eigen::Matrix<double,Dynamic,Dynamic>, Dynamic,1> M(z);
for (int i = 0; i < M.rows(); ++i) M(i)=MatrixXd::Zero(x,y);
// access coefficients with M(z)(x,y)
和
int x,y,z;
std::vector<Eigen::Matrix<double,Dynamic,Dynamic> > M(z);
for (int i = 0; i < M.rows(); ++i) M[i]=MatrixXd::Zero(x,y);
// access coefficients with M[z](x,y)
我的问题是:使用这两种方法是否有任何速度/效率优势,或者它们是否等效?