ベクトル、配列の次は、行列です。行列の生成にはmatrixを使います。
> a = matrix(1:12, nrow=3, ncol=4)
> a
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
>
行列の掛け算をします。
\[
a = \left(
\begin{array}{cc}
1 & 2 &3
\end{array}
\right)
\]
\[
b = \left(
\begin{array}{cc}
4 \\
5 \\
6
\end{array}
\right)
\]
\[
a \times b =
\]
行列の積をするには、%”%を使います。
> a=matrix(1:3,nrow=1,ncol=3)
> a
[,1] [,2] [,3]
[1,] 1 2 3
> b=matrix(4:6,nrow=3,ncol=1)
> b
[,1]
[1,] 4
[2,] 5
[3,] 6
> a %*% b
[,1]
[1,] 32
計算できない行列にすると、このようにエラーがでます。
> b=matrix(4:5,nrow=2,ncol=1)
> b
[,1]
[1,] 4
[2,] 5
> a %*% b
a %*% b でエラー: 適切な引数ではありません
>
スカラーとの積は、普通に*を使います。
> a
[,1] [,2] [,3]
[1,] 1 2 3
> a * 3
[,1] [,2] [,3]
[1,] 3 6 9
>
別の行列でも確認してみましょう。
\[
a = \left(
\begin{array}{cc}
1 & 3 & 5\\
2 & 4 & 6
\end{array}
\right)
\]
\[
b = \left(
\begin{array}{cc}
10 \\
20 \\
30
\end{array}
\right)
\]
> a = matrix(1:6,nrow=2,ncol=3)
> b = matrix(c(10,20,30), nrow=3,ncol=1)
> a
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
> b
[,1]
[1,] 10
[2,] 20
[3,] 30
> a %*% b
[,1]
[1,] 220
[2,] 280
>
各要素ごとの計算は、四則演算の記号がそのまま使えます。
> a = matrix (1:4, nrow=2,ncol=2)
> b = matrix (11:14, nrow=2,ncol=2)
> a
[,1] [,2]
[1,] 1 3
[2,] 2 4
> b
[,1] [,2]
[1,] 11 13
[2,] 12 14
各要素の和。
> a + b
[,1] [,2]
[1,] 12 16
[2,] 14 18
各要素の積
> a * b
[,1] [,2]
[1,] 11 39
[2,] 24 56


コメント