将二维数组转换为犰狳矩阵(垫)对象
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 使用矩阵的列优先排序。以上是关于将二维数组转换为犰狳矩阵(垫)对象的主要内容,如果未能解决你的问题,请参考以下文章