【问题标题】: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;

【问题讨论】:

    标签: c++ matrix armadillo


    【解决方案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 使用矩阵的列优先排序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    相关资源
    最近更新 更多