目录
1.diag()函数
2.eigen()函数
3.svd()函数
4.qr()函数
5.dim()函数
6.nrow()函数
7.ncol()函数
8.cbind()函数与rbind()函数
9.as.vector()函数与as.matrix()函数
10.solve()函数
11.aperm()函数
12. apply()函数
1.diag()函数
(1)作用一:求矩阵对角线元素(返回值为一个向量)
t = matrix(1:9,nc = 3);t
diag(t)#返回对角元
结果展示
(2)作用二:把向量转化为对角阵
diag(c(1,2,4,5,8))
结果展示
或者
diag(2,3,4)#生成对角线全为2,大小为3*4的矩阵
结果展示
2.eigen()函数
·eigen英文的中文含义就是“本征”的含义,用于求一个矩阵的特征值和特征向量。、
z = matrix(c(1,0,0,1),nc = 2);z
eigen(z)
结果展示
其中values是特征向量,vectors是特征向量
3.svd()函数
svd()函数可以对矩阵进行奇异值分解
z = matrix(c(0,1,1,0),nc = 2);z
svd(z)
结果展示
4.qr()函数
z = matrix(c(1,0,0,1),nc = 2);z
qr(z)
结果展示
5.dim()函数
dim()函数求矩阵的秩
> z
[,1] [,2]
[1,] 1 0
[2,] 0 1
> dim(z)#求矩阵的秩
[1] 2 2
6.nrow()函数
> z
[,1] [,2]
[1,] 1 0
[2,] 0 1
> nrow(z)#求矩阵的行数
[1] 2
7.ncol()函数
> z
[,1] [,2]
[1,] 1 0
[2,] 0 1
> ncol(z)#求矩阵的列数
[1] 2
8.cbind()函数与rbind()函数
首先创建两个矩阵
> a = matrix(c(1,1,2,0),nc = 2);a
[,1] [,2]
[1,] 1 2
[2,] 1 0
> b = matrix(c(1,0,0,1),nc = 2);b
[,1] [,2]
[1,] 1 0
[2,] 0 1
运用cbind()函数,把第二个矩阵链接在第一个矩阵的最后一列之后
cbind(a,b)#按列拼接,需要行数相同
结果为
运用rbind()函数,把第二个矩阵链接在第一个矩阵的最后一行之后
rbind(a,b)#按行拼接,需要列数相同
结果为
9.as.vector()函数与as.matrix()函数
(1)as,vector()可以把矩阵转化为向量
a = matrix(1:4,nc = 2);a
as.vector(a)
结果为
(2)as.matrix()可以把矩阵转化为矩阵
as.matrix(1:4)
结果为
10.solve()函数
(1)求矩阵的逆矩阵
a = matrix(c(1,1,2,0),nc = 2);a
[,1] [,2]
[1,] 1 2
[2,] 1 0
> solve(a)
[,1] [,2]
[1,] 0.0 1.0
[2,] 0.5 -0.5
(2)求 AX = B方程的解
A = matrix(c(1,1,1,0),nc = 2);A
[,1] [,2]
[1,] 1 1
[2,] 1 0
> B = c(1,1);B
[1] 1 1
> solve(A,B)
[1] 1 0
11.aperm()函数
aperm()函数能够转换广义矩阵的维度
m = array(1:24,c(2,3,4));m
aperm(m,c(2,3,1))
结果为
m = array(1:24,c(2,3,4));m
, , 1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
, , 2
[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
, , 3
[,1] [,2] [,3]
[1,] 13 15 17
[2,] 14 16 18
, , 4
[,1] [,2] [,3]
[1,] 19 21 23
[2,] 20 22 24
> aperm(m,c(2,3,1))
, , 1
[,1] [,2] [,3] [,4]
[1,] 1 7 13 19
[2,] 3 9 15 21
[3,] 5 11 17 23
, , 2
[,1] [,2] [,3] [,4]
[1,] 2 8 14 20
[2,] 4 10 16 22
[3,] 6 12 18 24
aperm()函数的参数c(2,3,1)可以理解为对矩阵的维数进行转换
维数c(2,3,4)转换为c(3,4,2),具体位置的转化为【i,j,k】——>【j,k,i】文章来源:https://www.toymoban.com/news/detail-732213.html
12. apply()函数
apply(
x # 数组或矩阵
MARGIN #应用函数的方向,1行2列
FUN # 应用的函数
)
应用实例:求矩阵每列平均数文章来源地址https://www.toymoban.com/news/detail-732213.html
> x = matrix(c(1:12),nc = 4);x
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
> apply(x,2,mean)#求每列的平均数
[1] 2 5 8 11
到了这里,关于R语言学习——矩阵相关函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!