[R]対角行列を作る
diag関数を使う。引数にスカラーを与えると、与えた数(自然数)を行数とした対角成分が1、対角成分以外は0の行列を作成する。引数にベクトルを与えると、ベクトルの値の順番に対角成分を持つ対角行列を作成する。
> diag(3)
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1
> diag(c(1, 2, 3))
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 2 0
[3,] 0 0 3
引数に既存の行列を与え、スカラー、ベクトルをそれぞれ代入することで、対角成分だけの値を置き換えることも可能である。
> mx <- matrix(c(1, 2, 3, 4), nrow = 2)
> mx
[,1] [,2]
[1,] 1 3
[2,] 2 4
> diag(mx) <- 9
> mx
[,1] [,2]
[1,] 9 3
[2,] 2 9
> diag(mx) <- c(7, 8)
> mx
[,1] [,2]
[1,] 7 3
[2,] 2 8
« [R]転置行列を作成する | トップページ | [C#]コマンドラインでコンパイルする »
「R(行列)」カテゴリの記事
- [R]前進代入法で連立方程式を解く(2026.03.12)
- [R]相関行列を求める(2026.03.08)
- [R]LU分解を行う(2026.02.27)
- [R]下三角行列を作成する(2026.02.25)
- [R]上三角行列を作成する(2026.02.24)

コメント