Most efficient option for build 3D structures using Eigen matrices

前端 未结 3 1031
别那么骄傲
别那么骄傲 2021-01-13 16:31

I need a 3D matrix/array structure on my code, and right now I\'m relying on Eigen for both my matrices and vectors.

Right now I am creating a 3D structure using

3条回答
  •  無奈伤痛
    2021-01-13 17:19

    An alternative is to create a very large chunk of memory ones, and maps Eigen matrices from it:

    double* data = new double(60*60 * 60*60*60);
    
    Map Mijk(data+60*(60*(60*k)+j)+i), 60, 60);
    

    At this stage you can use Mijk like a MatrixXd object. However, since this not a MatrixXd type, if you want to pass it to a function, your function must either:

    • be of the form foo(Map mat)
    • be a template function: template void foo(const MatrixBase& mat)
    • take a Ref object which can handle both Map<> and Matrix<> objects without being a template function and without copies. (doc)

提交回复
热议问题