千家信息网

R语言如何创建矩阵

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,今天小编给大家分享一下R语言如何创建矩阵的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧
千家信息网最后更新 2025年01月24日R语言如何创建矩阵

今天小编给大家分享一下R语言如何创建矩阵的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

矩阵

矩阵是其中元素以二维矩形布局布置的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,]    3    4    5[2,]    6    7    8[3,]    9   10   11[4,]   12   13   14     [,1] [,2] [,3][1,]    3    7   11[2,]    4    8   12[3,]    5    9   13[4,]    6   10   14     col1 col2 col3row1    3    4    5row2    6    7    8row3    9   10   11row4   12   13   14

转置矩阵

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,]    2    6    5[2,]    1   10    4# 转换为 3 行 2 列的矩阵print(t(M))执行以上代码输出结果为:     [,1] [,2] [,3][1,]    2    6    5[2,]    1   10    4 "-----转置后-----"     [,1] [,2][1,]    2    1[2,]    6   10[3,]    5    4

矩阵有一个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,]    2    6    5[2,]    1   10    4dim(A)[1] 2 3

访问矩阵元素

如果想获取矩阵元素,可以通过使用元素的列索引和行索引,类似坐标形式。

# 定义行和列的名称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])执行以上代码输出结果为:     col1 col2 col3row1    3    4    5row2    6    7    8row3    9   10   11row4   12   13   14[1] 5[1] 13 col1 col2 col3     6    7    8  row1 row2 row3 row4     5    8   11   14

矩阵计算

大小相同(行数列数都相同)的矩阵之间可以相互加减,具体是对每个位置上的元素做加减法。矩阵的乘法则较为复杂。两个矩阵可以相乘,当且仅当第一个矩阵的列数等于第二个矩阵的行数。

矩阵加减法

# 创建 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   -1    2[2,]    9    4    3     [,1] [,2] [,3][1,]    6    0    3[2,]    1    9    2相加结果:      [,1] [,2] [,3][1,]   13   -1    5[2,]   10   13    5相减结果:      [,1] [,2] [,3][1,]    1   -1   -1[2,]    8   -5    1

矩阵乘除法

# 创建 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   -1    2[2,]    9    4    3     [,1] [,2] [,3][1,]    6    0    3[2,]    1    9    2相乘结果:      [,1] [,2] [,3][1,]   42    0    6[2,]    9   36    6相除结果:          [,1]      [,2]      [,3][1,] 1.166667      -Inf 0.6666667[2,] 9.000000 0.4444444 1.5000000

以上就是"R语言如何创建矩阵"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

0