如何使用c++中的Eigen库创建一个高效的3D矩阵

How to create an efficient 3D matrix using the Eigen library in C++?

本文关键字:一个 高效 矩阵 3D c++ 何使用 中的 Eigen 创建      更新时间:2023-10-16

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

    不建议使用静态分配创建大型矩阵,因为这会降低性能。
  1. 您可以创建2D矩阵的矢量,而不是3D矩阵。

    如:特征::MatrixX<</p>

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

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

如果你想初始化一个维度为(k,m,n)的预定义矩阵,只需使用:

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

这种方法便于特征矩阵的存储。但是如果你想计算3d矩阵,你应该将它分割成许多2d矩阵,并使用循环来获得3d结果。