📜  在 R 中组合矩阵

📅  最后修改于: 2022-05-13 01:55:14.130000             🧑  作者: Mango

在 R 中组合矩阵

组合矩阵涉及连接两个或多个较小的矩阵,无论是行还是列,以形成一个更大的矩阵。它基本上是一种数据操作操作,其中所涉及的矩阵必须具有兼容的大小才能执行操作。矩阵可以水平或垂直组合。

R-01 中的矩阵组合

R中有两种组合矩阵的方法:

  • 逐列组合
  • 逐行组合

逐列组合

R中的列绑定, cbind()函数,用于合并两个数据框或矩阵A_m_*_n and B_m_*_p  (n 可能等于也可能不等于 p)由它们的列组合在一起。所涉及的矩阵应具有相同的行数。

例子:

Python3
# R program for combining two matrices
# column-wise
 
# Creating 1st Matrix
B = matrix(c(1, 2), nrow = 1, ncol = 2)
 
# Creating 2nd Matrix
C = matrix(c(3, 4, 5), nrow = 1, ncol = 3)
 
# Original Matrices
print(B)
print(C)
 
# Combining matrices
print (cbind(B, C))


Python3
# R program for combining two matrices
# row-wise
 
# Creating 1st Matrix
B = matrix(c(1, 2, 3), nrow = 1, ncol = 3)
 
# Creating 2nd Matrix
C = matrix(c(4, 5, 6, 7, 8, 9), nrow = 2, ncol = 3)
 
# Original Matrices
print(B)
print(C)
 
# Combining matrices
print (rbind(B, C))


输出:

[,1] [,2]
[1,]    1    2
     [,1] [,2] [,3]
[1,]    3    4    5
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    2    3    4    5

在上面的代码中,矩阵 C 的列 [3 4 5] 按顺序添加到矩阵 B 的列 [1 2] 中。这些更改不会对任何现有矩阵进行。

特性:

  • 结果矩阵的列数是两个矩阵的列的总和。
  • 不可交换:列按函数中指定参数的顺序合并。因此,cbind(a, b) != cbind(b, a)
  • 关联: cbind(cbind(a, b), c) = cbind(a, cbind(b, c))

逐行组合

R中的行绑定, rbind()函数,用于合并两个数据框或矩阵A_m_*_p and B_n_*_p  (m 可能等于也可能不等于 n),由它们的行组成。所涉及的矩阵应具有相同的列数。

例子:

Python3

# R program for combining two matrices
# row-wise
 
# Creating 1st Matrix
B = matrix(c(1, 2, 3), nrow = 1, ncol = 3)
 
# Creating 2nd Matrix
C = matrix(c(4, 5, 6, 7, 8, 9), nrow = 2, ncol = 3)
 
# Original Matrices
print(B)
print(C)
 
# Combining matrices
print (rbind(B, C))

输出:

[,1] [,2] [,3]
[1,]    1    2    3
     [,1] [,2] [,3]
[1,]    4    6    8
[2,]    5    7    9
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    6    8
[3,]    5    7    9

[4 6 8] 和 [5 7 9] 行按顺序附加到矩阵 B[1 2 3] 的一行。未对原始矩阵进行任何更改。

特性:

  • 结果矩阵的行数是两个矩阵的行数之和。
  • 不可交换:行按函数中指定参数的顺序合并。因此,rbind(a, b) != rbind(b, a)
  • 联想: rbind(rbind(a, b), c) = rbind(a, rbind(b, c))

时间复杂度:O(m+n)
空间复杂度:O(m+n),其中 m 是第一个矩阵的元素总数和第二个矩阵的 n 个元素的总数。