本文概述
在R中, 二维矩形数据集称为矩阵。借助于矩阵函数的矢量输入来创建矩阵。在R矩阵上, 我们可以执行加, 减, 乘和除运算。
在R矩阵中, 元素以固定数量的行和列排列。矩阵元素是实数。在R中, 我们使用矩阵函数, 该函数可以轻松地重现矩阵的内存表示形式。在R矩阵中, 所有元素必须共享一个公共的基本类型。
例子
matrix1<-matrix(c(11, 13, 15, 12, 14, 16), nrow =2, ncol =3, byrow = TRUE)
matrix1
输出
[, 1] [, 2] [, 3]
[1, ] 11 13 15
[2, ] 12 14 16
R中的矩阵历史
“矩阵”一词是子宫的拉丁词, 意指形成或生产某种东西的地方。两位具有历史重要性的作者以特殊方式使用”矩阵”一词。他们提出了这个公理, 作为将任何函数简化为较低类型之一的一种手段, 以便在”底部”(0阶)处, 该函数与其扩展名相同。
在归纳过程的帮助下, 除矩阵中的矩阵以外的任何可能函数均成立。仅当命题(断言所讨论的函数)为真时, 它才会为真。仅当不确定另一个参数时, 它对所有或一个参数值才成立。
如何在R中创建矩阵?
像vector和list一样, R提供创建矩阵的函数。 R提供了matrix()函数来创建矩阵。此功能在数据分析中起着重要作用。 R中矩阵的语法如下:
matrix(data, nrow, ncol, byrow, dim_name)
数据
矩阵函数中的第一个参数是数据。输入向量是矩阵的数据元素。
row
第二个参数是我们要在矩阵中创建的行数。
恩科尔
第三个参数是我们要在矩阵中创建的列数。
拜罗
byrow参数是一个逻辑线索。如果其值为true, 则按行排列输入向量元素。
dim_name
dim_name参数是分配给行和列的名称。
让我们看一个示例, 以了解如何使用矩阵函数创建矩阵并按行或列顺序排列元素。
例子
#Arranging elements sequentially by row.
P <- matrix(c(5:16), nrow = 4, byrow = TRUE)
print(P)
# Arranging elements sequentially by column.
Q <- matrix(c(3:14), nrow = 4, byrow = FALSE)
print(Q)
# Defining the column and row names.
row_names = c("row1", "row2", "row3", "row4")
col_names = c("col1", "col2", "col3")
R <- matrix(c(3:14), nrow = 4, byrow = TRUE, dimnames = list(row_names, col_names))
print(R)
输出
[, 1] [, 2] [, 3]
[1, ] 5 6 7
[2, ] 8 9 10
[3, ] 11 12 13
[4, ] 14 15 16
[, 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
在R中访问矩阵元素
像C和C ++一样, 我们可以通过使用元素的索引轻松访问矩阵的元素。有三种方法可以从矩阵访问元素。
- 我们可以访问第n行和第m列上显示的元素。
- 我们可以访问第n行上存在的矩阵的所有元素。
- 我们还可以访问第m列上存在的矩阵的所有元素。
让我们看一个示例, 以了解如何从第n行第m列, 第n行或第m列上存在的矩阵访问元素。
例子
# Defining the column and row names.
row_names = c("row1", "row2", "row3", "row4")
col_names = c("col1", "col2", "col3")
#Creating matrix
R <- matrix(c(5:16), nrow = 4, byrow = TRUE, dimnames = list(row_names, col_names))
print(R)
#Accessing element present on 3rd row and 2nd column
print(R[3, 2])
#Accessing element present in 3rd row
print(R[3, ])
#Accessing element present in 2nd column
print(R[, 2])
输出
col1 col2 col3
row1 5 6 7
row2 8 9 10
row3 11 12 13
row4 14 15 16
[1] 12
col1 col2 col3
11 12 13
row1 row2 row3 row4
6 9 12 15
矩阵修改
R允许我们在矩阵中进行修改。有几种方法可以在矩阵中进行修改, 如下所示:
分配一个元素
在矩阵修改中, 第一种方法是在特定位置将单个元素分配给矩阵。通过为该位置分配一个新值, 旧值将被替换为新值。这种修改技术非常容易执行矩阵修改。其基本语法如下:
matrix[n, m]<-y
在此, n和m分别是元素的行和列。并且, y是我们分配用来修改矩阵的值。
让我们看一个例子, 了解如何进行修改:
例子
# Defining the column and row names.
row_names = c("row1", "row2", "row3", "row4")
col_names = c("col1", "col2", "col3")
R <- matrix(c(5:16), nrow = 4, byrow = TRUE, dimnames = list(row_names, col_names))
print(R)
#Assigning value 20 to the element at 3d roe and 2nd column
R[3, 2]<-20
print(R)
输出
col1 col2 col3
row1 5 6 7
row2 8 9 10
row3 11 12 13
row4 14 15 16
col1 col2 col3
row1 5 6 7
row2 8 9 10
row3 11 20 13
row4 14 15 16
关系运算符的使用
R提供了执行基质药物治疗的另一种方法。在这种方法中, 我们使用了一些关系运算符, 例如>, <, ==。与第一种方法一样, 第二种方法非常易于使用。让我们看一个示例, 以了解此方法如何修改矩阵。
例子1
# Defining the column and row names.
row_names = c("row1", "row2", "row3", "row4")
col_names = c("col1", "col2", "col3")
R <- matrix(c(5:16), nrow = 4, byrow = TRUE, dimnames = list(row_names, col_names))
print(R)
#Replacing element that equal to the 12
R[R==12]<-0
print(R)
输出
col1 col2 col3
row1 5 6 7
row2 8 9 10
row3 11 12 13
row4 14 15 16
col1 col2 col3
row1 5 6 7
row2 8 9 10
row3 11 0 13
row4 14 15 16
例子2
# Defining the column and row names.
row_names = c("row1", "row2", "row3", "row4")
col_names = c("col1", "col2", "col3")
R <- matrix(c(5:16), nrow = 4, byrow = TRUE, dimnames = list(row_names, col_names))
print(R)
#Replacing elements whose values are greater than 12
R[R>12]<-0
print(R)
输出
col1 col2 col3
row1 5 6 7
row2 8 9 10
row3 11 12 13
row4 14 15 16
col1 col2 col3
row1 5 6 7
row2 8 9 10
row3 11 12 0
row4 0 0 0
行和列的加法
矩阵修改的第三种方法是使用cbind()和rbind()函数添加行和列。 cbind()和rbind()函数分别用于添加列和行。让我们看一个例子来理解cbind()和rbind()函数的工作。
例子1
# Defining the column and row names.
row_names = c("row1", "row2", "row3", "row4")
col_names = c("col1", "col2", "col3")
R <- matrix(c(5:16), nrow = 4, byrow = TRUE, dimnames = list(row_names, col_names))
print(R)
#Adding row
rbind(R, c(17, 18, 19))
#Adding column
cbind(R, c(17, 18, 19, 20))
#transpose of the matrix using the t() function:
t(R)
#Modifying the dimension of the matrix using the dim() function
dim(R)<-c(1, 12)
print(R)
输出
col1 col2 col3
row1 5 6 7
row2 8 9 10
row3 11 12 13
row4 14 15 16
col1 col2 col3
row1 5 6 7
row2 8 9 10
row3 11 12 13
row4 14 15 16
17 18 19
col1 col2 col3
row1 5 6 7 17
row2 8 9 10 18
row3 11 12 13 19
row4 14 15 16 20
row1 row2 row3 row4
col1 5 8 11 14
col2 6 9 12 15
col3 7 10 13 16
[, 1] [, 2] [, 3] [, 4] [, 5] [, 6] [, 7] [, 8] [, 9] [, 10] [, 11] [, 12]
[1, ] 5 8 11 14 6 9 12 15 7 10 13 16
矩阵运算
在R中, 我们可以对矩阵执行数学运算, 例如加, 减, 乘等。为对矩阵执行数学运算, 要求两个矩阵都应具有相同的维数。
让我们看一个例子, 以了解如何对矩阵执行数学运算。
例子1
R <- matrix(c(5:16), nrow = 4, ncol=3)
S <- matrix(c(1:12), nrow = 4, ncol=3)
#Addition
sum<-R+S
print(sum)
#Subtraction
sub<-R-S
print(sub)
#Multiplication
mul<-R*S
print(mul)
#Multiplication by constant
mul1<-R*12
print(mul1)
#Division
div<-R/S
print(div)
输出
[, 1] [, 2] [, 3]
[1, ] 6 14 22
[2, ] 8 16 24
[3, ] 10 18 26
[4, ] 12 20 28
[, 1] [, 2] [, 3]
[1, ] 4 4 4
[2, ] 4 4 4
[3, ] 4 4 4
[4, ] 4 4 4
[, 1] [, 2] [, 3]
[1, ] 5 45 117
[2, ] 12 60 140
[3, ] 21 77 165
[4, ] 32 96 192
[, 1] [, 2] [, 3]
[1, ] 60 108 156
[2, ] 72 120 168
[3, ] 84 132 180
[4, ] 96 144 192
[, 1] [, 2] [, 3]
[1, ] 5.000000 1.800000 1.444444
[2, ] 3.000000 1.666667 1.400000
[3, ] 2.333333 1.571429 1.363636
[4, ] 2.000000 1.500000 1.333333
矩阵的应用
- 在地质学中, 矩阵负责调查和绘制图形, 统计数据, 并用于不同领域的研究。
- 矩阵是一种表示方法, 可帮助绘制常见的调查对象。
- 在机器人技术和自动化领域, 矩阵是机器人运动的最重要要素。
- 矩阵在经济学中主要用于计算国内生产总值, 也有助于计算商品和产品的能力。
- 在基于计算机的应用程序中, 矩阵在创建逼真的外观运动中起着至关重要的作用。
评论前必须登录!
注册