ベクトル、配列の次は、行列です。行列の生成には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
コメント