将二维数组转换为犰狳矩阵(垫)对象

Posted

技术标签:

【中文标题】将二维数组转换为犰狳矩阵(垫)对象【英文标题】:Convert a 2D array into an Armadillo matrix (mat) object 【发布时间】:2021-01-24 07:53:02 【问题描述】:

如何将标准 C++ 2D 数组转换为表示矩阵的 Armadillo mat 对象,以便执行矩阵运算?

例如,我想转换自:

double a[10][20];

到:

arma::mat A;

【问题讨论】:

【参考方案1】:

使用

arma::mat A(&a[0][0], 10, 20);

如果您想要缓冲区的副本并且:

arma::mat A(&a[0][0], 10, 20, false);

如果您想使用a 指出的缓冲区,更多详细信息请参阅http://arma.sourceforge.net/docs.html#Mat

【讨论】:

非常感谢它有效!!!有没有办法可以逆转这个过程,将 mat 转换为 2d 数组? 太棒了!如果您满意,请采纳答案。您可以使用 double ptr*=A.memptr() 从 arma 矩阵访问原始缓冲区,注意 armadillo 使用矩阵的列优先排序。

以上是关于将二维数组转换为犰狳矩阵(垫)对象的主要内容,如果未能解决你的问题,请参考以下文章

将 NumPy 向量转换为二维数组/矩阵

将对象数组的对象数组转换为对象的二维数组

将对象数组转换为二维数组

如何将 c# 二维数组转换为 JSON 对象?

如何将静态二维数组转换为特征值

使用 vue.js 将二维关联数组转换为 Object