代码之家  ›  专栏  ›  技术社区  ›  MichaelE

如何在犰狳中创建nxn单位矩阵?

  •  2
  • MichaelE  · 技术社区  · 7 年前

    我正在尝试将犰狳用于C++。我使用该网站作为参考: Armadillo Link

    arma::mat UnityMatrix = arma:mat(5,5,fill::zeros)
    for (int ii = 0; ii < UnityMatrix.n_rows;ii++){
     for (int jj = 0; jj < UnityMatrix.n_cols;jj++){
       if (ii==jj){
         UnityMatrix(ii,jj)=1;
       }
     }
    

    } 我创建一个由零组成的矩阵,然后在对角线上加一。这是可行的,但我相信在犰狳身上有更有效的方法。

    我试过:

    arma::umat InitM;
    InitM.set_size(5,5);
    

    这给了我一个5x5的随机值矩阵。

    2 回复  |  直到 7 年前
        1
  •  2
  •   MichaelE    7 年前

    我在发布这个问题后就发现了。代码为。

    arma::mat UnityMatrix = arma:mat(5,5,fill::eye)
    

        2
  •  1
  •   Benjamin Christoffersen    7 年前

    identity matrix 而不是一个 unit matrix arma::eye<arma::umat>() 正如Claes Rolen所建议的那样。对于后者,请参见您自己的回复。

    关于你评论中的问题, umat 是类型为的矩阵 uword