2.2.2 矩阵
2025年09月26日
2.2.2 矩阵
矩阵是一个二维数组,也可以说是一个二维向量,所以在矩阵中同样只能保存相同类型的数据。在R语言中,一般使用matrix()函数来创建矩阵,创建矩阵的方式有两种:
通过上述代码,我们使用两种方式创建了两个4×4矩阵。在第二种方式中,byrow默认是FALSE,表示按列填充,byrow=TRUE表示按行填充。当byrow=FALSE时,m2将成为m1。
我们有时需要创建对角矩阵,R中的diag()函数可完成这个操作,例如:
我们可以使用“[]”对矩阵中的元素进行访问。x[i,j]指矩阵中的第i行、第j列;x[i,]表示访问第i行的所有元素;x[,j]则表示访问矩阵中第j列的所有元素。例如:
上述代码的说明如下:首先,我们创建了4×4的矩阵,默认按列填充;其次,我们访问了矩阵中第2行、第2列的元素;最后,我们又分别访问了第2行和第2列中的所有元素。
在默认情况下,创建矩阵时不会自动分配行列名。但是在使用矩阵时,我们有时会对行和列进行命名,以赋予行列不同的含义。我们可以在创建矩阵时通过matrix()中的dimnames参数为行列进行命名,例如:
我们也可以在矩阵创建完成后,再对其行列进行命名,例如:
矩阵从本质上来说还是向量,因此,所有适用于向量的算术运算符也同样适用于矩阵。这些算术运算符在元素层面上进行运算。另外,还有一些矩阵专用的运算符,如矩阵乘法“%*%”。具体示例如下。
在R语言中,可以通过cbind()和rbind()两个函数来实现两个矩阵的行、列合并。但需要注意的是,进行矩阵行合并时需要保证两个矩阵的列相等,进行矩阵列合并时需要保证两个矩阵的行相等。例如: