R语言:矩阵的基础用法

#矩阵
#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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值