R矩阵用法详解

本文概述

  • R中的矩阵历史
  • 如何在R中创建矩阵?
  • 在R中访问矩阵元素
  • 矩阵修改
  • 矩阵运算
  • 矩阵的应用
在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, ]111315[2, ]121416

R矩阵用法详解

文章图片
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, ]567[2, ]8910[3, ]111213[4, ]141516[, 1] [, 2] [, 3][1, ]3711[2, ]4812[3, ]5913[4, ]61014col1 col2 col3row1345row2678row391011row4121314

在R中访问矩阵元素 像C和C ++一样, 我们可以通过使用元素的索引轻松访问矩阵的元素。有三种方法可以从矩阵访问元素。
  1. 我们可以访问第n行和第m列上显示的元素。
  2. 我们可以访问第n行上存在的矩阵的所有元素。
  3. 我们还可以访问第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 columnprint(R[3, 2])#Accessing element present in 3rd rowprint(R[3, ])#Accessing element present in 2nd columnprint(R[, 2])

输出
col1 col2 col3row1567row28910row3111213row4141516[1] 12col1 col2 col3111213row1 row2 row3 row4691215

矩阵修改 R允许我们在矩阵中进行修改。有几种方法可以在矩阵中进行修改, 如下所示:
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 columnR[3, 2]< -20print(R)

输出
col1 col2 col3row1567row28910row3111213row4141516col1 col2 col3row1567row28910row3112013row4141516

关系运算符的使用
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 12R[R==12]< -0print(R)

输出
col1 col2 col3row1567row28910row3111213row4141516col1 col2 col3row1567row28910row311013row4141516

例子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 12R[R> 12]< -0print(R)

输出
col1 col2 col3row1567row28910row3111213row4141516col1 col2 col3row1567row28910row311120row4000

行和列的加法
【R矩阵用法详解】矩阵修改的第三种方法是使用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 rowrbind(R, c(17, 18, 19))#Adding columncbind(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() functiondim(R)< -c(1, 12)print(R)

输出
col1 col2 col3row1567row28910row3111213row4141516col1 col2 col3row1567row28910row3111213row4141516171819col1 col2 col3row1567 17row28910 18row3111213 19row4141516 20row1 row2 row3 row4col1581114col2691215col37101316[, 1] [, 2] [, 3] [, 4] [, 5] [, 6] [, 7] [, 8] [, 9] [, 10] [, 11] [, 12][1, ]5811146912157101316

矩阵运算 在R中, 我们可以对矩阵执行数学运算, 例如加, 减, 乘等。为对矩阵执行数学运算, 要求两个矩阵都应具有相同的维数。
R矩阵用法详解

文章图片
让我们看一个例子, 以了解如何对矩阵执行数学运算。
例子1
R < - matrix(c(5:16), nrow = 4, ncol=3)S < - matrix(c(1:12), nrow = 4, ncol=3)#Additionsum< -R+Sprint(sum)#Subtractionsub< -R-Sprint(sub)#Multiplicationmul< -R*Sprint(mul)#Multiplication by constantmul1< -R*12print(mul1)#Divisiondiv< -R/Sprint(div)

输出
[, 1] [, 2] [, 3][1, ]61422[2, ]81624[3, ]101826[4, ]122028[, 1] [, 2] [, 3][1, ]444[2, ]444[3, ]444[4, ]444[, 1] [, 2] [, 3][1, ]545117[2, ]1260140[3, ]2177165[4, ]3296192[, 1] [, 2] [, 3][1, ]60108156[2, ]72120168[3, ]84132180[4, ]96144192[, 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

矩阵的应用
  1. 在地质学中, 矩阵负责调查和绘制图形, 统计数据, 并用于不同领域的研究。
  2. 矩阵是一种表示方法, 可帮助绘制常见的调查对象。
  3. 在机器人技术和自动化领域, 矩阵是机器人运动的最重要要素。
  4. 矩阵在经济学中主要用于计算国内生产总值, 也有助于计算商品和产品的能力。
  5. 在基于计算机的应用程序中, 矩阵在创建逼真的外观运动中起着至关重要的作用。

    推荐阅读