如何使用C ++中的Eigen库创建高效的3D矩阵?

问题描述 投票:1回答:2

对于机器人项目,我需要一个预定义大小的3D矩阵。使用特征库,我不知道如何:1。)创建一个大的预定义矩阵,似乎我必须使用matrixXd,但这是一个动态矩阵。 2.)创建一个3D矩阵,i。即size =(int从200到1000)和matrix (size, size, size)

c++ eigen robotics
2个回答
0
投票

好吧,我找到了一种在我的项目中构建3d矩阵的方法。使用矢量:

typedef vector<Matrix<double, Dynamic, Dynamic>> M3;

如果要初始化具有维度(k,m,n)的预定义矩阵,只需使用:

M3 W(k, M2(m, n));

这种方式很容易存储Eigen Matrix。但是如果你想计算3d矩阵,你应该将它切片到许多2d矩阵并使用循环来获得3d结果。


-1
投票
  1. 建议不要使用静态分配创建大型矩阵,因为它会降低性能。
  2. 您可以创建2D矩阵向量,而不是3D矩阵。 例如:Eigen :: MatrixX <Eigen :: MatrixXf,DIMENSION,1> tmp;
© www.soinside.com 2019 - 2024. All rights reserved.