R - 矩陣:初学者的友好導入
您好,未來的 R 編程超級巨星!我很興奮能成為您進入 R 語言中矩陣世界的導遊。作為一個教了多年計算機科學的人,我可以向您保證,矩陣不僅是基本的,而且非常有趣。那麼,我們一起來探索 R 矩陣的奧秘吧!
什麼是矩陣?
在我們開始編程之前,讓我們了解一下什麼是矩陣。想像一下一個電子表格或是一個表格,有行和列。這基本上就是 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