我需要存儲數據在類似3D的結構,但我一直依靠特徵庫來處理我的代碼中的矩陣結構,而Eigen不提供3D矩陣。我已經發現了兩個可能的解決方法:最有效的方法來舉行若干Eigen MatrixXd
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)
我的問題是:是否有任何速度/效率優勢,在使用這兩種方法,或者是他們相同呢?
問題必須在目標環境中測量來回答。沒有測量就無法給出正確的答案。 –
[使用特徵矩陣構建3D結構的最高效選項]的可能副本(http://stackoverflow.com/questions/17098218/most-efficient-option-for-build-3d-structures-using-eigen-matrices) – chtz