创建矩阵
使用 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
>
>