11矩阵的运算

11.1常用的矩阵计算

> m
   C1 C2 C3 C4 C5
R1  1  2  3  4  5
R2  6  7  8  9 10
R3 11 12 13 14 15
R4 16 17 18 19 20
> m+1 #各个元素都加1
   C1 C2 C3 C4 C5
R1  2  3  4  5  6
R2  7  8  9 10 11
R3 12 13 14 15 16
R4 17 18 19 20 21
> m*2 #各个元素都乘2
   C1 C2 C3 C4 C5
R1  2  4  6  8 10
R2 12 14 16 18 20
R3 22 24 26 28 30
R4 32 34 36 38 40
> m+m #对应元素相加
   C1 C2 C3 C4 C5
R1  2  4  6  8 10
R2 12 14 16 18 20
R3 22 24 26 28 30
R4 32 34 36 38 40
> n <- matrix(1:20,5,4)
> n
     [,1] [,2] [,3] [,4]
[1,]    1    6   11   16
[2,]    2    7   12   17
[3,]    3    8   13   18
[4,]    4    9   14   19
[5,]    5   10   15   20
> m+n  #m和n的行和列数不同所以没法进行运算
Error in m + n : 非整合陈列

矩阵之间的运算需要相同的行或列,如果想进行运算可以取出单独的行或列进行运算

> t <- m[1,]
> sum(t)
[1] 15

11.2矩阵计算的函数

序号 函数 作用
01 colSums(m) 求m矩阵中每列的和
02 rowSums(m) 求m矩阵中每行的和
03 colMeans(m) 求m矩阵中每列的平均值
04 rowMeans(m) 求m矩阵中每行的平均值
> colSums(m)
C1 C2 C3 C4 C5 
34 38 42 46 50 
> rowSums(m)
R1 R2 R3 R4 
15 40 65 90 
> colMeans(m)
  C1   C2   C3   C4   C5 
 8.5  9.5 10.5 11.5 12.5 
> rowMeans(m)
R1 R2 R3 R4 
 3  8 13 18

11.3矩阵的乘积(内积&外积)

矩阵的内积

> n <- matrix(1:9,3,3)
> t <- matrix(2:10,3,3)
> n
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9
> t
     [,1] [,2] [,3]
[1,]    2    5    8
[2,]    3    6    9
[3,]    4    7   10
> n*t
     [,1] [,2] [,3]
[1,]    2   20   56
[2,]    6   30   72
[3,]   12   42   90

矩阵的外积

序号 函数 作用
01 diag(m) 求m阶对角矩阵的对角线,返回对角线位置的值
02 t(m) 将m矩阵进行转置,将行和列进行互换,只换数字不换名称(row=F)
> n %*% t
     [,1] [,2] [,3]
[1,]   42   78  114
[2,]   51   96  141
[3,]   60  114  168
> diag(n)  #返回对角线位置的值
[1] 1 5 9
> n
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9
> m
   C1 C2 C3 C4 C5
R1  1  2  3  4  5
R2  6  7  8  9 10
R3 11 12 13 14 15
R4 16 17 18 19 20
> t(m) # 将m矩阵进行转置,将行和列进行互换
   R1 R2 R3 R4
C1  1  6 11 16
C2  2  7 12 17
C3  3  8 13 18
C4  4  9 14 19
C5  5 10 15 20

你可能感兴趣的:(11矩阵的运算)