R语言:矩阵的基础用法

    科技2022-07-11  127

    #矩阵 #1.定义矩阵

    > m<-matrix(c(1:10),nrow=2,ncol=5)

    #这里的第一个nrow为行,ncol为列数。但是数组的数量必须与矩阵的第一个参数的数目相同,同时行数和列数只要列出一个就可以

    > m<-matrix(c(1:10),nrow=2) > m<-matrix(c(1:10),ncol=5)

    #这里这三个m是一样的 #2.这里默认为按列排序,也可以改为按行排序

    > m2<-matrix(c(1:10),nrow=2,byrow=T) > m2

    #3.可以给矩阵的行和列数起名字方法如下

    > rname<-c("R1","R2") > cname<-c("C1","C2","C3","C4","C5") > dimnames(m)<-list(rname,cname) > m

    #4.dim函数,它是维数的函数。用法

    > ?dim

    #用法1.可以求出变量的维数

    > dim(m)

    #这里由于m为一个2行5列的矩阵,所以输出为[1] 2 5 #方法2.可以给一个数组添加维数

    > x<-c(1:20) > dim(x)<-c(2,2,5) x

    #这里x可以理解为变为长宽高分别为2,2,5的3维数组(其实是空间结构).同理也可以重命名 #4.n维数组也可以用array函数来创建

    > ?array > dim1<-c("A1","A2") > dim2<-c("B1","B2","B3") > dim3<-c("C1","C2","C3","C4") > array(c(1:24),c(2,3,4),dimnames =list(dim1,dim2,dim3))

    #5.矩阵的索引,注意:R中的矩阵和python其他的索引不同。它是以1开始的. #可以直接用行数和列数来访问元素

    > m[1,2]

    #如果省略行号或者列号可以直接访问一行或一列

    > m[2,] > m[,3]

    #如果我们定义了行名或者列名可以直接用名字来进行索引

    > m["R1","C2"]

    #6.矩阵可以直接进行运算

    > m+1

    #也可以两个矩阵相加但是要注意两个矩阵的行数和列数要相同

    > x1<-matrix(c(1:20),nrow=4) > x2<-matrix(c(41:60),nrow=4) > x1+x2

    #直接相乘是各个数相乘

    > x1*x2

    #也可以计算矩阵的相乘(这两种都可以)

    > x1 %*% x2 > crossprod(x1,x2)

    #矩阵的转置可以用t()函数完成

    > x1 > t(x1)

    #R中的函数det()将计算方阵A的行列式

    > det(X)

    #diag方阵最小矩阵的对角线

    > x3<-matrix(c(1:16),nrow=4,byrow = TRUE) > diag(x3)

    #矩阵的逆

    > solve(x3)

    #7.4个函数

    > colSums(m) > colSums(m[,1])

    #这里是不行的会显示“Error in colSums(m[, 1]) : 'x’必需是阵列,而且至少得有两个维度” #也就是说他必须要算所有列的和,但是我们如果想要计算某一列的和:

    > tmp<-m[,1] > sum(tmp)

    #这样就可以了

    > rowSums(m) > colMeans(m) > rowMeans(m)
    Processed: 0.039, SQL: 8