犰狳矩阵中的多种数据类型

multiple datatype in a armadillo matrix

我想在 Armadillo 中创建一个矩阵,它可以将不同的数据类型保存在一个矩阵中。例如,我想要一个包含三个整数列、一个浮点列和一个具有枚举值的列的矩阵。有什么解决办法吗?

犰狳矩阵在内部将所有元素存储为元素数据类型的标准 C 数组。这意味着所有元素必须具有相同的类型。这对犰狳有意义,因为它旨在用于线性代数和数值计算,而不是作为通用容器。

对于您的特定情况,最好简单地创建单独的对象。例如,您可以创建一个整数矩阵(arma::imat 或 arma::umat,具体取决于您是否需要符号)、一个浮点数向量 (arma::vec),对于枚举列,您可以使用 std::vector.

然后你可以创建一个包含三个字段的结构来存储这些对象(或使用元组),如果你总是想把它们放在一起(例如,为了轻松地将它们作为参数传递)。