私はArmadillo for C++を使用しようとしています。Armadilloでnxn Unityマトリックスを作成するには?
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;
}
}
} 私がゼロのマトリックスを作成し、対角線上のものを追加:私は仕事にそれを得たArmadillo Link
シンプルかつ遅い方法だった:私は、参考のためにサイトを使用しています。これはうまくいきますが、アルマジロでこれを行うより効率的な方法があると確信しています。
アルマジロはユニタリであるべきumatタイプを持っていますが、使用方法を理解できません。
私が試した:私はランダムな値の5×5の行列を与えた
arma::umat InitM;
InitM.set_size(5,5);
を。
私は他の方法で初期化を試みましたが、コンパイルできませんでした。
これは基本的なので、私はオンラインの例は見つけられませんが、まだそれを理解することはできません。
私は転記直後に答えを見つけました。しかしそれは別の疑問をもたらす。私が使用しようとしていたumatタイプは何ですか?また、いつ使用しますか? – MichaelE
明確にするために、「統一」マトリックスのようなものはありません。 [単位行列](https://en.wikipedia.org/wiki/Identity_matrix)があります。単位行列と呼ばれることもあります。これは、単位行列とは異なる[unitary matrix](https://en.wikipedia.org/wiki/Unitary_matrix)と混同してはいけません。 – mtall