资源描述:
《R语言中矩阵运算的函数.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1创建一个向量在R中可以用函数c()来创建一个向量,例如:>x=c(1,2,3,4)>x[1]12342创建一个矩阵在R中可以用函数matrix()来创建一个矩阵,应用该函数时需要输入必要的参数值。>args(matrix)function(data=NA,nrow=1,ncol=1,byrow=FALSE,dimnames=NULL)data项为必要的矩阵元素,nrow为行数,ncol为列数,注意nrow与ncol的乘积应为矩阵元素个数,byrow项控制排列元素时是否按行进行,dimnames给定行和列的名称。例如:>matrix(1:12,nrow=3,ncol=4)[,1][,2][,3
2、][,4][1,]14710[2,]25811[3,]36912>matrix(1:12,nrow=4,ncol=3)[,1][,2][,3][1,]159[2,]2610[3,]3711[4,]4812>matrix(1:12,nrow=4,ncol=3,byrow=T)[,1][,2][,3][1,]123[2,]456[3,]789[4,]101112>rowname[1]"r1""r2""r3">colname=c("c1","c2","c3","c4")>colname[1]"c1""c2""c3""c4">matrix(1:12,nrow=3,ncol=4,dimnames=lis
3、t(rowname,colname))c1c2c3c4r114710r2258113矩阵转置A为m×n矩阵,求A'在R中可用函数t(),例如:>A=matrix(1:12,nrow=3,ncol=4)>A[,1][,2][,3][,4][1,]14710[2,]25811[3,]36912>t(A)[,1][,2][,3][1,]123[2,]456[3,]789[4,]101112若将函数t()作用于一个向量x,则R默认x为列向量,返回结果为一个行向量,例如:>x[1]12345678910>t(x)[,1][,2][,3][,4][,5][,6][,7][,8][,9][,10][1,]1
4、2345678910>class(x)[1]"integer">class(t(x))[1]"matrix"若想得到一个列向量,可用t(t(x)),例如:>x[1]12345678910>t(t(x))[,1][1,]1[2,]2[3,]3[4,]4[5,]5[6,]6[7,]7[8,]8[9,]9[10,]10>y=t(t(x))>t(t(y))[,1][1,]1[2,]2[3,]3[4,]4[5,]5[6,]6[7,]7[8,]8[9,]9[10,]104矩阵相加减在R中对同行同列矩阵相加减,可用符号:“+”、“-”,例如:>A=B=matrix(1:12,nrow=3,ncol=4)>A
5、+B[,1][,2][,3][,4][1,]281420[2,]4101622[3,]6121824>A-B[,1][,2][,3][,4][1,]0000[2,]0000[3,]00005数与矩阵相乘A为m×n矩阵,c>0,在R中求cA可用符号:“*”,例如:>c=2>c*A[,1][,2][,3][,4][1,]281420[2,]4101622[3,]61218246矩阵相乘A为m×n矩阵,B为n×k矩阵,在R中求AB可用符号:“%*%”,例如:>A=matrix(1:12,nrow=3,ncol=4)>B=matrix(1:12,nrow=4,ncol=3)>A%*%B[,1][,2]
6、[,3][1,]70158246[2,]80184288[3,]90210330若A为n×m矩阵,要得到A'B,可用函数crossprod(),该函数计算结果与t(A)%*%B相同,但是效率更高。例如:>A=matrix(1:12,nrow=4,ncol=3)>B=matrix(1:12,nrow=4,ncol=3)>t(A)%*%B[,1][,2][,3][1,]3070110[2,]70174278[3,]110278446>crossprod(A,B)[,1][,2][,3][1,]3070110[2,]70174278[3,]110278446矩阵Hadamard积:若A={aij}m
7、×n,B={bij}m×n,则矩阵的Hadamard积定义为:A⊙B={aijbij}m×n,R中Hadamard积可以直接运用运算符“*”例如:>A=matrix(1:16,4,4)>A[,1][,2][,3][,4][1,]15913[2,]261014[3,]371115[4,]481216>B=A>A*B[,1][,2][,3][,4][1,]12581169[2,]436100196[3