R - 矩阵:初学者的友好入门

你好啊,未来的R编程超级巨星!我很高兴能成为你探索R中矩阵世界的向导。作为一个教授计算机科学多年的老师,我可以向你保证,矩阵不仅基础而且非常有趣。那么,让我们跳进去,一起揭开R矩阵的神秘面纱吧!

R - Matrices

矩阵是什么?

在开始编码之前,我们先来了解一下矩阵是什么。想象一下电子表格或表格,行和列。这在R中基本上就是一个矩阵 - 一个由数字或字符组成的二维数组,按行和列排列。酷吧?

创建你的第一个矩阵

让我们从创建一个简单的矩阵开始:

my_first_matrix <- matrix(1:9, nrow = 3, ncol = 3)
print(my_first_matrix)

当你运行这段代码时,你会看到:

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

刚才发生了什么?我们使用了matrix()函数来创建一个3x3的矩阵。数字1到9默认按列填充。就像把数字倒进列里一样!

自定义值的矩阵

让我们来点更复杂的:

custom_matrix <- matrix(c(10, 20, 30, 40, 50, 60), nrow = 2, ncol = 3)
print(custom_matrix)

输出:

[,1] [,2] [,3]
[1,]   10   30   50
[2,]   20   40   60

在这里,我们创建了一个2x3的矩阵,有特定的值。注意R是如何按列填充矩阵的。

访问矩阵元素

现在我们已经创建了矩阵,让我们来学习如何访问它们的元素。就像在地图上寻找宝藏一样!

访问单个元素

要访问单个元素,我们使用带行和列索引的方括号:

my_matrix <- matrix(1:9, nrow = 3, ncol = 3)
element <- my_matrix[2, 3]
print(element)

这将打印8。我们刚刚访问了第2行第3列的元素!

访问整行或整列

想要整行或整列?没问题!

# 获取第二行
second_row <- my_matrix[2, ]
print(second_row)

# 获取第三列
third_column <- my_matrix[, 3]
print(third_column)

输出:

[1] 2 5 8
[1] 7 8 9

省略列或行索引会给你整个行或列。就像说,“给我这个行/列里的一切!”

矩阵计算

现在,让我们让我们的矩阵发挥作用!R使矩阵计算变得轻而易举。

矩阵加法

加法就像加数字一样简单:

matrix1 <- matrix(1:4, nrow = 2)
matrix2 <- matrix(5:8, nrow = 2)
sum_matrix <- matrix1 + matrix2
print(sum_matrix)

输出:

[,1] [,2]
[1,]    6    8
[2,]    8   10

就像加上相应的元素。魔法!

矩阵乘法

矩阵乘法有点复杂,但R使其变得简单:

result <- matrix1 %*% matrix2
print(result)

输出:

[,1] [,2]
[1,]   23   31
[2,]   34   46

%*%操作符是矩阵乘法的首选。记住,第一个矩阵的列数必须等于第二个矩阵的行数!

转置矩阵

转置就像把矩阵翻到它的侧面:

transposed <- t(matrix1)
print(transposed)

输出:

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

t()函数是转置的魔法师!

实际示例:图像处理

让我们将我们的矩阵技能应用到现实世界的场景中。想象你正在处理一个简单的图像处理任务。在数字图像中,每个像素都由一个数字表示,整个图像是这些数字的矩阵。

这里是一个简单的5x5灰度图像,表示为矩阵:

image <- matrix(c(
200, 150, 100, 150, 200,
150, 100,  50, 100, 150,
100,  50,   0,  50, 100,
150, 100,  50, 100, 150,
200, 150, 100, 150, 200
), nrow = 5, byrow = TRUE)

print(image)

这将创建一个简单的菱形图案。现在,让我们通过给每个像素加50来 brighten 这个图像:

brightened_image <- image + 50
print(brightened_image)

我们刚刚使用矩阵加法执行了一个基本的图像处理操作!

结论

恭喜你!你已经迈入了R中矩阵的迷人世界。我们已经涵盖了创建矩阵、访问它们的元素以及执行基本计算。记住,熟能生巧,所以不要犹豫,去尝试这些概念。

在我们结束之前,这里有一个表格,总结了我们学到的关键矩阵函数:

函数 描述 示例
matrix() 创建矩阵 matrix(1:9, nrow = 3, ncol = 3)
[row, col] 访问矩阵元素 my_matrix[2, 3]
+ 矩阵加法 matrix1 + matrix2
%*% 矩阵乘法 matrix1 %*% matrix2
t() 转置矩阵 t(matrix1)

继续探索,继续编码,最重要的是,和R矩阵一起享受乐趣!它们不仅仅是盒子里的数字;它们是强大的工具,可以帮助你解决现实世界的问题。下次见,快乐编码!

Credits: Image by storyset