R ベクトル・行列の掛け算

estis2018/03/02 (金) 22:56 に投稿

ベクトル

> (a <- 1:4)
[1] 1 2 3 4
> (b <- 5:8)
[1] 5 6 7 8

> a*b
[1]  5 12 21 32

> a%*%b
     [,1]
[1,]   70
> sum(a*b)
[1] 70
> crossprod(a,b)
     [,1]
[1,]   70

> a%o%b
     [,1] [,2] [,3] [,4]
[1,]    5    6    7    8
[2,]   10   12   14   16
[3,]   15   18   21   24
[4,]   20   24   28   32
> outer(a,b)
     [,1] [,2] [,3] [,4]
[1,]    5    6    7    8
[2,]   10   12   14   16
[3,]   15   18   21   24
[4,]   20   24   28   32

> a%x%b
 [1]  5  6  7  8 10 12 14 16 15 18 21 24 20 24 28 32
> kronecker(a,b)
 [1]  5  6  7  8 10 12 14 16 15 18 21 24 20 24 28 32

行列

> (a <- matrix(1:4,2,2 ))
     [,1] [,2]
[1,]    1    3
[2,]    2    4
> (b <- matrix(5:8,2,2 ))
     [,1] [,2]
[1,]    5    7
[2,]    6    8


> a*b
     [,1] [,2]
[1,]    5   21
[2,]   12   32


> a%*%b
     [,1] [,2]
[1,]   23   31
[2,]   34   46


> sum(a*b)
[1] 70


> crossprod(a,b)
     [,1] [,2]
[1,]   17   23
[2,]   39   53


> a%o%b
, , 1, 1

     [,1] [,2]
[1,]    5   15
[2,]   10   20

, , 2, 1

     [,1] [,2]
[1,]    6   18
[2,]   12   24

, , 1, 2

     [,1] [,2]
[1,]    7   21
[2,]   14   28

, , 2, 2

     [,1] [,2]
[1,]    8   24
[2,]   16   32

> outer(a,b)
, , 1, 1

     [,1] [,2]
[1,]    5   15
[2,]   10   20

, , 2, 1

     [,1] [,2]
[1,]    6   18
[2,]   12   24

, , 1, 2

     [,1] [,2]
[1,]    7   21
[2,]   14   28

, , 2, 2

     [,1] [,2]
[1,]    8   24
[2,]   16   32


> a%x%b
     [,1] [,2] [,3] [,4]
[1,]    5    7   15   21
[2,]    6    8   18   24
[3,]   10   14   20   28
[4,]   12   16   24   32
> kronecker(a,b)
     [,1] [,2] [,3] [,4]
[1,]    5    7   15   21
[2,]    6    8   18   24
[3,]   10   14   20   28
[4,]   12   16   24   32
>