Giới thiệu về Ma trận trong R: Lối vào thân thiện cho người mới bắt đầu

Xin chào bạn, ngôi sao lập trình R tương lai! Tôi rất vui mừng được hướng dẫn bạn trong hành trình thú vị vào thế giới các ma trận trong R. Là một ai đó đã dạy khoa học máy tính trong nhiều năm, tôi có thể đảm bảo với bạn rằng các ma trận không chỉ cơ bản mà còn rất thú vị để làm việc với chúng. Hãy cùng nhau lặn sâu và khám phá bí ẩn của các ma trận trong R nhé!

R - Matrices

Ma trận là gì?

Trước khi chúng ta bắt đầu lập mã, hãy hiểu ma trận là gì. Hãy tưởng tượng một bảng tính hoặc bảng với các hàng và cột. Đó chính là ma trận trong R - một mảng hai chiều của các số hoặc ký tự được sắp xếp theo hàng và cột. Đ趣 không?

Tạo ma trận đầu tiên của bạn

Hãy bắt đầu bằng cách tạo một ma trận đơn giản:

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

Khi bạn chạy đoạn mã này, bạn sẽ thấy:

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

Điều gì vừa xảy ra? Chúng ta đã sử dụng hàm matrix() để tạo một ma trận 3x3. Các số từ 1 đến 9 được điền theo cột mặc định. Nó giống như đổ số vào các cột!

Ma trận với các giá trị tùy chỉnh

Hãy làm cho nó trở nên稍微 phức tạp hơn:

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

Kết quả:

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

Ở đây, chúng ta đã tạo một ma trận 2x3 với các giá trị cụ thể. Lưu ý cách R điền ma trận theo cột.

Truy cập các phần tử của ma trận

Bây giờ chúng ta đã tạo ra các ma trận, hãy học cách truy cập các phần tử của chúng. Nó giống như tìm kho báu trên bản đồ!

Truy cập một phần tử

Để truy cập một phần tử, chúng ta sử dụng dấu ngoặc vuông với chỉ số hàng và cột:

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

Điều này sẽ in ra 8. Chúng ta vừa truy cập phần tử ở hàng thứ 2 và cột thứ 3!

Truy cập toàn bộ hàng hoặc cột

Muốn lấy toàn bộ hàng hoặc cột? Không có vấn đề gì!

# Lấy hàng thứ hai
second_row <- my_matrix[2, ]
print(second_row)

# Lấy cột thứ ba
third_column <- my_matrix[, 3]
print(third_column)

Kết quả:

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

Để trống chỉ số hàng hoặc cột sẽ cho bạn toàn bộ hàng hoặc cột. Nó giống như nói, "Cho tôi tất cả trong hàng/cột này!"

Tính toán với ma trận

Bây giờ, hãy để các ma trận của chúng ta làm việc! R làm cho các phép toán ma trận trở nên dễ dàng.

Cộng ma trận

Cộng ma trận dễ dàng như cộng số:

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

Kết quả:

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

Nó giống như cộng các phần tử tương ứng. Phép thuật!

Nhân ma trận

Nhân ma trận稍微 phức tạp hơn, nhưng R làm cho nó đơn giản:

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

Kết quả:

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

Ký hiệu %*% là lựa chọn của bạn cho phép nhân ma trận. Nhớ rằng, số lượng cột trong ma trận đầu tiên phải bằng số lượng hàng trong ma trận thứ hai!

Đảo ma trận

Đảo ma trận giống như lật ma trận trên một bên:

transposed <- t(matrix1)
print(transposed)

Kết quả:

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

Hàm t() là phù thủy đảo ma trận của bạn!

Ví dụ thực tế: Xử lý hình ảnh

Hãy áp dụng kỹ năng ma trận của chúng ta vào một tình huống thực tế. Hãy tưởng tượng bạn đang làm việc trên một nhiệm vụ xử lý hình ảnh đơn giản. Trong các hình ảnh kỹ thuật số, mỗi pixel được đại diện bởi một số, và toàn bộ hình ảnh là một ma trận các số này.

Đây là một hình ảnh đơn giản 5x5 màu xám được đại diện bởi một ma trận:

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)

Điều này tạo ra một mẫu hình kim cương đơn giản. Bây giờ, hãy làm sáng hình ảnh này bằng cách thêm 50 vào mỗi pixel:

brightened_image <- image + 50
print(brightened_image)

Chúng ta vừa thực hiện một thao tác xử lý hình ảnh cơ bản sử dụng phép cộng ma trận!

Kết luận

Chúc mừng! Bạn đã迈出第一步进入R中矩阵的迷人世界。我们已经涵盖了创建矩阵、访问它们的元素以及执行基本计算。记住,熟能生巧,所以不要犹豫去尝试这些概念。

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

Hàm Mô tả Ví dụ
matrix() Tạo ma trận matrix(1:9, nrow = 3, ncol = 3)
[row, col] Truy cập phần tử ma trận my_matrix[2, 3]
+ Cộng ma trận matrix1 + matrix2
%*% Nhân ma trận matrix1 %*% matrix2
t() Đảo ma trận t(matrix1)

Tiếp tục khám phá, tiếp tục lập mã và quan trọng nhất, hãy vui vẻ với các ma trận trong R! Chúng không chỉ là các con số trong hộp; chúng là những công cụ mạnh mẽ có thể giúp bạn giải quyết các vấn đề thực tế. Đến gặp lại, chúc bạn lập mã vui vẻ!

Credits: Image by storyset