Chuyển đến nội dung chính

Hướng dẫn Ma trận trong R

Tìm hiểu mọi thứ về ma trận trong R, đặt tên hàng và cột, truy cập phần tử cùng các phép tính như cộng, trừ, nhân và chia.
Đã cập nhật 5 thg 10, 2026  · 7 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Ma trận là các đối tượng mà các phần tử được biểu diễn trong cấu trúc hai chiều, chủ yếu là phần tử số để thực hiện nhiều phép tính khác nhau.

Ví dụ, hãy xem ma trận dưới đây.

      [,1] [,2] [,3]
[1,]    5    6    7
[2,]    8    9   10
[3,]   11   12   13

Ma trận trên cho thấy có 3 hàng và 3 cột.

Trong R, ma trận có thể được tạo bằng 'matrix()'.

Cú pháp định nghĩa một ma trận trong R như sau:

matrix(value, nrow, ncol, byrow, dimnames)

Các tham số cho hàm matrix được định nghĩa như sau:

  1. value - chỉ định đầu vào là một vector, trong đó mỗi phần tử là một phần tử trong ma trận.
  2. nrow - chỉ định số hàng của ma trận.
  3. ncol - chỉ định số cột của ma trận.
  4. byrow - giá trị boolean gồm TRUE hoặc FALSE. Nếu TRUE, các phần tử của ma trận được điền theo hàng; nếu FALSE, các phần tử được điền theo cột.
  5. dimnames - chỉ định tên được gán cho từng hàng và cột của ma trận.

Xem ví dụ dưới đây, trong đó 'mat' là tên của một ma trận với đầu vào vector bên trong c gồm các giá trị 8,4,5,6,7,9. Nó cũng chứa số hàng, tức 'nrow' là 2 và 'ncol' là 3, nghĩa là kích thước ma trận là 2 * 3. Đồng thời, các phần tử của ma trận được sắp xếp theo hàng, tức là các giá trị của vector được điền theo từng hàng.

mat = matrix(c(8,4,5,6,7,9),nrow = 2, ncol = 3,byrow = TRUE)
print(mat)

Kết quả của đoạn mã trên được hiển thị dưới đây, trong đó có ba cột và hai hàng với các phần tử được điền theo hàng.

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

Đặt tên Hàng và Cột

Hãy tạo một ma trận có các phần tử từ 1 đến 9, số hàng là 3. Đồng thời, các hàng và cột được đặt tên bằng vector chứa danh sách từ r1 đến r3 và c1 đến c3.

mat <- matrix(1:9,  nrow = 3,dimnames = list(c("r1","r2","r3"), c("c1","c2","c3")))
mat
    c1    c2    c3
r1    1    4    7
r2    2    5    8
r3    3    6    9

Kết quả trên cho thấy các phần tử từ 1 đến 9 được điền theo cột. Đồng thời, các hàng và cột được gắn nhãn từ r1 đến r3 và c1 đến c3.

Truy cập Phần tử trong ma trận

Ma trận dưới đây có tên là 'mat', gồm 3 hàng và 3 cột.

    c1    c2    c3
r1    1    4    7
r2    2    5    8
r3    3    6    9

Để truy cập từng phần tử của ma trận trên, bạn cần truyền tên ma trận kèm theo dấu ngoặc với chỉ số hàng và cột bên trong.

  • Để truy cập phần tử 5 từ ma trận trên, dùng cú pháp:
    mat[2,2]
  • Để truy cập phần tử 6 từ ma trận trên, dùng cú pháp:
    mat[3,2]
  • Để truy cập toàn bộ cột thứ nhất của ma trận, tức [1 2 3], dùng cú pháp:
    mat[,1]
  • Để truy cập toàn bộ hàng thứ hai của ma trận, tức [2 5 8], dùng cú pháp:
    mat[2,]

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

Phép Cộng và Trừ Ma trận

Điều kiện: Điều kiện để cộng và trừ ma trận là các ma trận phải có cùng kích thước, tức số hàng và số cột giống hệt nhau. Ví dụ

Hai ma trận dưới đây mat1 và mat2 có kích thước 3 * 3, tức có 3 hàng và 3 cột, trong đó số hàng và số cột ở cả hai ma trận đều bằng nhau.

mat1 <- matrix(c(5,10,15,20,25,30,35,40,45), nrow = 3)
print(mat1)

mat2 <- matrix(c(50,55,60,65,70,75,80,85,90), nrow = 3)
print(mat2)
     [,1] [,2] [,3]
[1,]    5   20   35
[2,]   10   25   40
[3,]   15   30   45
     [,1] [,2] [,3]
[1,]   50   65   80
[2,]   55   70   85
[3,]   60   75   90

Các ma trận trên được in ra, trong đó từng phần tử được hiển thị và dữ liệu được điền theo cột.

add_output <- mat1 + mat2
cat("Addition","\n")
print(add_output)


sub_output <- mat1 - mat2
cat("Subtraction","\n")
print(sub_output)
Addition
     [,1] [,2] [,3]
[1,]   55   85  115
[2,]   65   95  125
[3,]   75  105  135
Subtraction
     [,1] [,2] [,3]
[1,]  -45  -45  -45
[2,]  -45  -45  -45
[3,]  -45  -45  -45

Kết quả trên từ phép cộng và trừ ma trận cho thấy từng phần tử tương ứng của hai ma trận được cộng hoặc trừ với nhau. Ví dụ, trong phép cộng ma trận, phần tử ở hàng 1 cột 1 là 5 trong mat1 được cộng với phần tử ở hàng 1 cột 1 trong mat2, cho ra kết quả 55. Tương tự, tất cả các phần tử đều thực hiện theo cách này trong cả phép cộng và phép trừ để cho ra kết quả như trên.

Phép Nhân và Chia Ma trận

Điều kiện: Điều kiện để nhân và chia ma trận là số hàng và số cột phải giống nhau. Nói cách khác, kích thước phải bằng nhau.

Phép Nhân Ma trận

Hãy xem ví dụ dưới đây với hai ma trận có tên mat1 và mat2, số hàng là ba và số cột là hai, giống nhau. Có sáu phần tử trong mỗi ma trận, được điền theo cột, và kích thước của mỗi ma trận là 3 * 2.

mat1<- matrix(c(2,4,6,8,10,12), nrow = 3,ncol =2)
print(mat1)

mat2 <- matrix(c(14,16,18,20,22,24), nrow = 3,ncol=2)
print(mat2)

final <- mat1 * mat2
print('------------------')
cat("Multiplication","\n")
print(final)
     [,1] [,2]
[1,]    2    8
[2,]    4   10
[3,]    6   12
     [,1] [,2]
[1,]   14   20
[2,]   16   22
[3,]   18   24
-----------------
Multiplication
     [,1] [,2]
[1,]   28  160
[2,]   64  220
[3,]  108  288

Kết quả từ phép nhân ma trận ở trên cho thấy từng phần tử của mat1 và mat2 được nhân với nhau. Ví dụ, 'mat1[1][1]' là 2 được nhân với 'mat2[1][1]' là 14 để được 28. Tương tự, quy trình được áp dụng cho mọi phần tử ở cả hai ma trận và cuối cùng tại 'mat1[3][2]' là 12 và 'mat2[3][2]' là 24 để được 288.

Phép Chia Ma trận

Hãy xem ví dụ dưới đây với hai ma trận có tên mat1 và mat2, số hàng là ba và số cột là hai, giống nhau. Có sáu phần tử trong mỗi ma trận, được điền theo cột, và kích thước của mỗi ma trận là 3 * 2.

mat1<- matrix(c(2,4,6,8,10,12), nrow = 3,ncol =2)
print(mat1)

mat2 <- matrix(c(14,16,18,20,22,24), nrow = 3,ncol=2)
print(mat2)
final <- mat1 / mat2
print('--------------')
cat("Division","\n")
print(final)
   [,1] [,2]
[1,]    2    8
[2,]    4   10
[3,]    6   12
     [,1] [,2]
[1,]   14   20
[2,]   16   22
[3,]   18   24
--------------
Division
          [,1]      [,2]
[1,] 0.1428571 0.4000000
[2,] 0.2500000 0.4545455
[3,] 0.3333333 0.5000000

Kết quả từ phép chia ma trận ở trên cho thấy từng phần tử của mat1 và mat2 được chia cho nhau. Ví dụ, 'mat1[1][1]' là 2 được chia cho 'mat2[1][1]' là 14 để được 0.1428571. Tương tự, quy trình được áp dụng cho mọi phần tử ở cả hai ma trận và cuối cùng tại 'mat1[3][2]' là 12 và 'mat2[3][2]' là 24 để được 0.5000000.

Chúc mừng

Chúc mừng bạn đã hoàn thành hướng dẫn này!

Trong hướng dẫn này, bạn đã tìm hiểu về ma trận trong R, cách đặt tên hàng và cột, truy cập phần tử cùng các phép tính như cộng, trừ, nhân và chia.

Nếu bạn muốn học thêm về R, hãy tham gia khóa học Giới thiệu về R của DataCamp.

Chủ đề
R
Khoa học Dữ liệu

Khóa học R

Khóa học

Nhập môn Ngôn ngữ lập trình R

4 giờ
3.1M
Nắm vững kiến thức cơ bản về phân tích dữ liệu trong R, gồm vectors, lists và data frames; luyện tập R với các data set thực tế.
Xem chi tiếtRight Arrow
Bắt Đầu Khóa Học
Xem thêmRight Arrow
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm