Advertisement

R语言入门(7)-矩阵运算

阅读量:
复制代码
 > m+1

    
    C1 C2 C3 C4 C5
    
 R1  2  6 10 14 18
    
 R2  3  7 11 15 19
    
 R3  4  8 12 16 20
    
 R4  5  9 13 17 21
    
  
    
 > n<-matrix
    
 > 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
    
 Error in m + n : non-conformable arrays
    
  
    
 > m[1,]
    
 C1 C2 C3 C4 C5 
    
  1  5  9 13 17 
    
 > sum(m[1,])
    
 [1] 45
    
 > colSums(m)
    
 C1 C2 C3 C4 C5 
    
 10 26 42 58 74 
    
 > rowSums(m)
    
 R1 R2 R3 R4 
    
 45 50 55 60 
    
 > colMeans(m)
    
   C1   C2   C3   C4   C5 
    
  2.5  6.5 10.5 14.5 18.5 
    
 > rowMeans(m)
    
 R1 R2 R3 R4 
    
  9 10 11 12

特别注意:在矩阵乘法中,内积运算与外积运算在行列维度方面存在显著差异。具体而言,在进行内乘法时(即两个同维向量之间的点乘),只有当两个矩阵A和B均为m×n形式时才能完成计算;而进行外乘法(即由m×n型矩阵A左乘n×p型矩B得到m×p型矩)时,则只需满足第一个矩A的第一维数目与第二个矩B的第一维数目一致即可完成计算。

复制代码
 > n<- matrix(1:12,3,4)

    
 > m<- matrix(2:13,3,4)
    
 > m+n
    
      [,1] [,2] [,3] [,4]
    
 [1,]    3    9   15   21
    
 [2,]    5   11   17   23
    
 [3,]    7   13   19   25
    
 > m*n
    
      [,1] [,2] [,3] [,4]
    
 [1,]    2   20   56  110
    
 [2,]    6   30   72  132
    
 [3,]   12   42   90  156
    
 > m %*% n
    
 Error in m %*% n : non-conformable arguments
    
 > n<- matrix(1:12,4,3)
    
 > m*n
    
 Error in m * n : non-conformable arrays
    
 > m %*% n
    
      [,1] [,2] [,3]
    
 [1,]   80  184  288
    
 [2,]   90  210  330
    
 [3,]  100  236  372

对角线数值输出、矩阵转置

复制代码
 > diag(n)

    
 [1]  1  6 11
    
  
    
 > t(n)
    
      [,1] [,2] [,3] [,4]
    
 [1,]    1    2    3    4
    
 [2,]    5    6    7    8
    
 [3,]    9   10   11   12

全部评论 (0)

还没有任何评论哟~