2.2 矩阵

来源:互联网 发布:淘宝怎么申请实拍保护 编辑:程序博客网 时间:2024/04/29 18:48


创建矩阵
使用 ncol 和 nrow 设置矩阵的行和列数
data=c(1:10)
> a=matrix(data,ncol=2,nrow=5)
> a
     [,1] [,2]
[1,]    1    6
[2,]    2    7
[3,]    3    8
[4,]    4    9
[5,]    5   10



把matrix 函数的byrow参数设置为T
> data=c(1:10)
> a=matrix(data,ncol=2,nrow=5,byrow=T)
> a
     [,1] [,2]
[1,]    1    2
[2,]    3    4
[3,]    5    6
[4,]    7    8
[5,]    9   10



diag()  ------ 创建对角矩阵


dim(<矩阵>)是由矩阵的行数和列数这两个元素组成的向量,
我们称其为维数向量
> data=c(1:10)
> a=matrix(data)
> dim(a)=c(2,5)
> a
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    3    5    7    9
[2,]    2    4    6    8   10





dimnames参数设置行和列的名称


> a=matrix(data,ncol=2,nrow=5,dimnames=list(c("r1","r2","r3","r4","r5"),c("c1","c2")))
> a
   c1 c2
r1  1  6
r2  2  7
r3  3  8
r4  4  9
r5  5 10



矩阵索引
 1、使用行列下标索引
 a[1,2]
[1] 6


2、使用行和列名称索引


> a
   c1 c2
r1  1  6
r2  2  7
r3  3  8
r4  4  9
r5  5 10
> a["r3","c1"]
[1] 3



3、使用一维下标索引
矩阵实质是由一维向量组成
> a[5]
[1] 5





矩阵编辑
 1、矩阵合并,cbind 和 rbind
rbind(x1,x2)  把向量按照行排列组成矩阵
> x1=c(2,4,6,8,0)
> x2=c(1,3,5,7,9)
> rbind(x1,x2)
   [,1] [,2] [,3] [,4] [,5]
x1    2    4    6    8    0
x2    1    3    5    7    9





> cbind(x1,x2) 按列组成矩阵
     x1 x2
[1,]  2  1
[2,]  4  3
[3,]  6  5
[4,]  8  7
[5,]  0  9



 2、删除矩阵
  a=a[-1,]  删除第一行
  a=a[,-1]  删除第一列


矩阵的运算
 1、一般运算
  矩阵加法 (A+B): aij+bij=(A+B)ij
  A+1   #矩阵各个元素均与一个常数相加
  矩阵减法 A-B
  矩阵各元素分别相乘 A*B
  矩阵乘法 A%*%C 


矩阵求逆 函数 rnorm()  solve()


 
> a=matrix(rnorm(16),4,4)
> a
           [,1]       [,2]       [,3]       [,4]
[1,] -0.0181468  1.3791057  0.7365276 -0.8475221
[2,] -0.8976929 -1.2808496 -2.3674834 -0.7135926
[3,] -0.9420785  0.2421256  0.4487002  0.1605128
[4,] -0.7445977 -0.3571766  0.6807310 -0.3014201
> b=c(1:4)
> b
[1] 1 2 3 4
> solve(a,b)
[1] -3.072901 -0.973429  1.315655 -1.554746





0 0
原创粉丝点击