« [R]転置行列を作成する | トップページ | [C#]コマンドラインでコンパイルする »

2019年2月19日 (火)

[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]転置行列を作成する | トップページ | [C#]コマンドラインでコンパイルする »

無料ブログはココログ

■■

■■■