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。我們剛才訪問了第二行第三列的元素!

訪問整個行或列

想要整個行或列?沒問題!

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

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

輸出:

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

leaving the column or row index blank gives you the entire row or column. 就像說,“給我這一行/列的所有東西!”

矩陣計算

現在,讓我們讓我們的矩陣動起來!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:

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