R语言如何创建矩阵
导读:本文共2538.5字符,通常情况下阅读需要8分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 矩阵矩阵是其中元素以二维矩形布局布置的R对象, 它们包含相同原子类型的元素。这种数据结构很类似于其它语言中的二维数组,但 R 提供了语言级的矩阵运算支持。矩阵里的元素可以是数字、符号或数学式。一个 M x N 的矩阵是一个由M(row)行 和N 列(column)元素排列成的矩形阵列。矩阵创建R 语言的矩阵可以使用 matrix() 函数来创建,语法格式如下:m... ...
目录
(为您整理了一些要点),点击可以直达。矩阵
矩阵是其中元素以二维矩形布局布置的R对象, 它们包含相同原子类型的元素。这种数据结构很类似于其它语言中的二维数组,但 R 提供了语言级的矩阵运算支持。
矩阵里的元素可以是数字、符号或数学式。
一个 M x N 的矩阵是一个由M(row)行 和N 列(column)元素排列成的矩形阵列。
矩阵创建
R 语言的矩阵可以使用 matrix() 函数来创建,语法格式如下:
matrix(data=NA,nrow=1,ncol=1,byrow=FALSE,dimnames=NULL)
参数说明:
data向量,矩阵的数据
nrow行数
ncol列数
byrow逻辑值,为 FALSE 按列排列,为 TRUE 按行排列
dimname设置行和列的名称
创建一个数字矩阵“
#byrow为TRUE元素按行排列M<-matrix(c(3:14),nrow=4,byrow=TRUE)print(M)#Ebyrow为FALSE元素按列排列N<-matrix(c(3:14),nrow=4,byrow=FALSE)print(N)#定义行和列的名称rownames=c("row1","row2","row3","row4")colnames=c("col1","col2","col3")P<-matrix(c(3:14),nrow=4,byrow=TRUE,dimnames=list(rownames,colnames))print(P)执行以上代码输出结果为:[,1][,2][,3][1,]345[2,]678[3,]91011[4,]121314[,1][,2][,3][1,]3711[2,]4812[3,]5913[4,]61014col1col2col3row1345row2678row391011row4121314
转置矩阵
R 语言矩阵提供了 t() 函数,可以实现矩阵的行列互换。
例如有个 m 行 n 列的矩阵,使用 t() 函数就能转换为 n 行 m 列的矩阵。
#创建一个2行3列的矩阵M=matrix(c(2,6,5,1,10,4),nrow=2,ncol=3,byrow=TRUE)print(M)[,1][,2][,3][1,]265[2,]1104#转换为3行2列的矩阵print(t(M))执行以上代码输出结果为:[,1][,2][,3][1,]265[2,]1104"-----转置后-----"[,1][,2][1,]21[2,]610[3,]54
矩阵有一个dim属性,内容是两个元素的向量, 两个元素分别为矩阵的行数和列数。dim属性可以用dim()函数访问。如
#创建一个2行3列的矩阵M=matrix(c(2,6,5,1,10,4),nrow=2,ncol=3,byrow=TRUE)print(M)[,1][,2][,3][1,]265[2,]1104dim(A)[1]23
访问矩阵元素
如果想获取矩阵元素,可以通过使用元素的列索引和行索引,类似坐标形式。
#定义行和列的名称rownames=c("row1","row2","row3","row4")colnames=c("col1","col2","col3")#创建矩阵P<-matrix(c(3:14),nrow=4,byrow=TRUE,dimnames=list(rownames,colnames))print(P)#获取第一行第三列的元素print(P[1,3])#获取第四行第二列的元素print(P[4,2])#获取第二行print(P[2,])#获取第三列print(P[,3])执行以上代码输出结果为:col1col2col3row1345row2678row391011row4121314[1]5[1]13col1col2col3678row1row2row3row4581114
矩阵计算
大小相同(行数列数都相同)的矩阵之间可以相互加减,具体是对每个位置上的元素做加减法。矩阵的乘法则较为复杂。两个矩阵可以相乘,当且仅当第一个矩阵的列数等于第二个矩阵的行数。
矩阵加减法
#创建2行3列的矩阵matrix1<-matrix(c(7,9,-1,4,2,3),nrow=2)print(matrix1)matrix2<-matrix(c(6,1,0,9,3,2),nrow=2)print(matrix2)#两个矩阵相加result<-matrix1+matrix2cat("相加结果:","\n")print(result)#两个矩阵相减result<-matrix1-matrix2cat("相减结果:","\n")print(result)执行以上代码输出结果为:[,1][,2][,3][1,]7-12[2,]943[,1][,2][,3][1,]603[2,]192相加结果:[,1][,2][,3][1,]13-15[2,]10135相减结果:[,1][,2][,3][1,]1-1-1[2,]8-51
矩阵乘除法
#创建2行3列的矩阵matrix1<-matrix(c(7,9,-1,4,2,3),nrow=2)print(matrix1)matrix2<-matrix(c(6,1,0,9,3,2),nrow=2)print(matrix2)#两个矩阵相乘result<-matrix1*matrix2cat("相乘结果:","\n")print(result)#两个矩阵相除result<-matrix1/matrix2cat("相除结果:","\n")print(result)执行以上代码输出结果为:[,1][,2][,3][1,]7-12[2,]943[,1][,2][,3][1,]603[2,]192相乘结果:[,1][,2][,3][1,]4206[2,]9366相除结果:[,1][,2][,3][1,]1.166667-Inf0.6666667[2,]9.0000000.44444441.5000000
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
R语言如何创建矩阵的详细内容,希望对您有所帮助,信息来源于网络。