R教程

R 矩阵

矩阵是 R 对象,其中元素以二维矩形布局排列。它们包含相同原子类型的元素。虽然我们可以创建一个只包含字符或仅包含逻辑值的矩阵,但它们没有多大用处。我们使用包含用于数学计算的数字元素的矩阵。
使用 matrix() 函数创建矩阵。

语法

在 R 中创建矩阵的基本语法是-
matrix(data, nrow, ncol, byrow, dimnames)
以下是所用参数的说明-
data 是输入向量,它成为矩阵的数据元素。 nrow 是要创建的行数。 ncol 是要创建的列数。 byrow 是一个合乎逻辑的线索。如果为 TRUE,则输入向量元素按行排列。 dimname 是分配给行和列的名称。

示例

创建一个以数字向量作为输入的矩阵。
# Elements are arranged sequentially by row.
M <-matrix(c(3:14), nrow = 4, byrow = true)
print(M)
# Elements are arranged sequentially by column.
N <-matrix(c(3:14), nrow = 4, byrow = false)
print(N)
# Define the column and row names.
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 col3
row1    3    4    5
row2    6    7    8
row3    9   10   11
row4   12   13   14

访问矩阵的元素

可以通过使用元素的列和行索引来访问矩阵的元素。我们考虑上面的矩阵 P 来找到下面的特定元素。
# Define the column and row names.
rownames = c("row1", "row2", "row3", "row4")
colnames = c("col1", "col2", "col3")
# Create the matrix.
P <-matrix(c(3:14), nrow = 4, byrow = true, dimnames = list(rownames, colnames))
# Access the element at 3rd column and 1st row.
print(P[1,3])
# Access the element at 2nd column and 4th row.
print(P[4,2])
# Access only the  2nd row.
print(P[2,])
# Access only the 3rd column.
print(P[,3])
当我们执行上面的代码时,它会产生以下结果-
[1] 5
[1] 13
col1 col2 col3 
   6    7    8 
row1 row2 row3 row4 
   5    8   11   14 

矩阵计算

使用 R 运算符对矩阵执行各种数学运算。运算的结果也是一个矩阵。
操作中涉及的矩阵的维度(行数和列数)应该相同。

矩阵加减法

# Create two 2x3 matrices.
matrix1 <-matrix(c(3, 9,-1, 4, 2, 6), nrow = 2)
print(matrix1)
matrix2 <-matrix(c(5, 2, 0, 9, 3, 4), nrow = 2)
print(matrix2)
# Add the matrices.
result <-matrix1 + matrix2
cat("Result of addition","\n")
print(result)
# Subtract the matrices
result <-matrix1-matrix2
cat("Result of subtraction","\n")
print(result)
当我们执行上面的代码时,它会产生以下结果-
     [,1] [,2] [,3]
[1,]    3  -1    2
[2,]    9    4    6
     [,1] [,2] [,3]
[1,]    5    0    3
[2,]    2    9    4
Result of addition 
     [,1] [,2] [,3]
[1,]    8  -1    5
[2,]   11   13   10
Result of subtraction 
     [,1] [,2] [,3]
[1,]  -2  -1  -1
[2,]    7  -5    2

矩阵乘法和除法

# Create two 2x3 matrices.
matrix1 <-matrix(c(3, 9,-1, 4, 2, 6), nrow = 2)
print(matrix1)
matrix2 <-matrix(c(5, 2, 0, 9, 3, 4), nrow = 2)
print(matrix2)
# Multiply the matrices.
result <-matrix1 * matrix2
cat("Result of multiplication","\n")
print(result)
# Divide the matrices
result <-matrix1 / matrix2
cat("Result of division","\n")
print(result)
当我们执行上面的代码时,它会产生以下结果-
     [,1] [,2] [,3]
[1,]    3  -1    2
[2,]    9    4    6
     [,1] [,2] [,3]
[1,]    5    0    3
[2,]    2    9    4
Result of multiplication 
     [,1] [,2] [,3]
[1,]   15    0    6
[2,]   18   36   24
Result of division 
     [,1]      [,2]      [,3]
[1,]  0.6     -Inf 0.6666667
[2,]  4.5 0.4444444 1.5000000
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4