Trong quá trình giảng dạy, Code Dream nhận thấy nhiều học viên gặp khó khăn khi học ma trận do chưa hiểu rõ cách áp dụng vào lập trình. Trong khi đó, ma trận lại là kiến thức quan trọng, xuất hiện nhiều trong thuật toán và các bài toán thực tế. Vì vậy, việc nắm vững các phép toán trên ma trận là bước nền tảng không thể thiếu. Cùng Code Dream tìm hiểu chi tiết trong bài viết dưới đây nhé!
Ma trận là gì?
Ma trận là một bảng các số được sắp xếp theo hàng và cột, thường được ký hiệu bằng các chữ cái in hoa như A, B, C.
Một ma trận có m hàng và n cột được gọi là ma trận m × n.
Ma trận là nền tảng để thực hiện các phép toán xử lý dữ liệu trong toán học và lập trình.

Các phép toán trên ma trận cơ bản
Đây là những phép toán nền tảng mà người học cần nắm vững trước khi tiếp cận các nội dung ma trận nâng cao trong toán học và lập trình.
Phép cộng ma trận
Phép cộng ma trận chỉ thực hiện được khi hai ma trận có cùng số hàng và số cột.
Quy tắc: Cộng các phần tử tương ứng của hai ma trận
Ví dụ :
#include <iostream> using namespace std; int main() { int a[2][2] = {{1,2},{3,4}}; int b[2][2] = {{5,6},{7,8}}; int c[2][2]; for(int i = 0; i < 2; i++) { for(int j = 0; j < 2; j++) { c[i][j] = a[i][j] + b[i][j]; } } // in kết quả for(int i = 0; i < 2; i++) { for(int j = 0; j < 2; j++) { cout << c[i][j] << " "; } cout << endl; } }
=> Kết quả nhận về :
6 8
10 12
Phép trừ ma trận
Phép trừ ma trận có điều kiện tương tự phép cộng: Hai ma trận phải cùng kích thước
Cách thực hiện: Trừ từng phần tử tương ứng của hai ma trận
Ví dụ:
#include <iostream>
using namespace std;
int main() {
int a[2][2] = {{1,2},{3,4}};
int b[2][2] = {{5,6},{7,8}};
int c[2][2];
for(int i = 0; i < 2; i++) {
for(int j = 0; j < 2; j++) {
c[i][j] = a[i][j] + b[i][j];
}
}
// in kết quả
for(int i = 0; i < 2; i++) {
for(int j = 0; j < 2; j++) {
cout << c[i][j] << " ";
}
cout << endl;
}
}
=> Kết quả nhận được:
-4 -4
-4 -4
Phép nhân ma trận
Lấy 1 hàng của A nhân với 1 cột của B rồi cộng lại
Điều kiện: Số cột của A = số hàng của B
Ví dụ:
#include <iostream> using namespace std; int main() { int a[2][2] = {{1,2},{3,4}}; int b[2][2] = {{5,6},{7,8}}; int c[2][2] = {0}; for(int i = 0; i < 2; i++) { for(int j = 0; j < 2; j++) { for(int k = 0; k < 2; k++) { c[i][j] += a[i][k] * b[k][j]; } } } // in kết quả for(int i = 0; i < 2; i++) { for(int j = 0; j < 2; j++) { cout << c[i][j] << " "; } cout << endl; } }
=> Nhận về kết quả:
19 22
43 50
Phép chuyển vị ma trận
Ma trận chuyển vị là ma trận thu được bằng cách đổi hàng thành cột.
Ký hiệu: A^T
Ví dụ:
1 2 3
4 5 6
Code:
int t[3][2];
for(int i = 0; i < 2; i++) {
for(int j = 0; j < 3; j++) {
t[j][i] = a[i][j];
}
}
=> Kết quả nhận được:
1 4
2 5
3 6
Phép tính tổng các phần tử
Cộng tất cả các phần tử trong ma trận
Ví dụ:
1 2
3 4
Code:
int sum = 0;
for(int i = 0; i < 2; i++) {
for(int j = 0; j < 2; j++) {
sum += a[i][j];
}
}
=> Kết quả tổng bằng 10
Một số lỗi người mới thường mắc phải khi học các phép toán trong ma trận trong C++ và cách khắc phục
1. Nhầm chỉ số hàng – cột (i, j)
Lỗi:Lấy ngược hàng và cột => Dễ gây sai kết quả hoặc lỗi runtime
Ví dụ sai:
for(int i = 0; i < n; i++)
for(int j = 0; j < m; j++)
cout << a[j][i]; // sai
Cách đúng:
cout << a[i][j];
Nguyên tắc: i là hàng, j là cột
2. Nhân ma trận sai bản chất
Khi nhân hai mà trận, nhiều người mới học nhầm tưởng lấy hàng nhân hàng, cột nhân cột, nhưng thực tế phải là lấy hàng của ma trận này, nhân với cột của ma trận kia
Ví dụ:
for(int k = 0; k < m; k++) {
c[i][j] += a[i][k] * b[k][j];
}
Nguyên tắc: Hàng của A × cột của B
3. Quên khởi tạo mảng kết quả khi nhân
Ví dụ sai:
int c[100][100];
Lỗi: chưa gán giá trị ban đầu, c[i][j] chứa rác → kết quả sai
Cách đúng:
int c[100][100] = {0};
Học toán và lập trình tại Code Dream
Sau khi nắm được các phép toán trên ma trận, điều quan trọng tiếp theo là hiểu cách áp dụng kiến thức này vào lập trình và giải quyết bài toán thực tế. Đây cũng chính là lý do nhiều học viên lựa chọn học tập tại Code Dream.
Tại Code Dream, học viên không chỉ học lý thuyết khô khan mà còn được:
Giải thích kiến thức bằng ví dụ trực quan, dễ hiểu
Thay vì chỉ học công thức khô khan, các phép toán ma trận được giảng dạy thông qua hình ảnh minh họa, ví dụ cụ thể và cách suy nghĩ từng bước, giúp học viên hiểu bản chất ngay từ đầu, kể cả khi chưa có nền tảng vững.
Kết hợp toán học với lập trình (C++, Python)
Học viên không chỉ dừng lại ở việc “hiểu toán” mà còn được hướng dẫn cách:
- Chuyển đổi ý tưởng toán học thành code
- Áp dụng trực tiếp vào bài tập lập trình
- Rèn luyện tư duy giải thuật ngay từ những bài cơ bản
Điều này giúp bạn không bị “học lệch” giữa toán và code, mà phát triển đồng đều cả hai.

Lộ trình học rõ ràng từ cơ bản đến nâng cao
Chương trình học được thiết kế theo từng bước:
- Bắt đầu từ những kiến thức nền tảng nhất (ma trận, vòng lặp, biến,…)
- Tiến dần lên các bài toán phức tạp hơn (nhân ma trận, tối ưu, ứng dụng thực tế,…)
Nhờ đó, học viên không bị choáng ngợp và luôn biết mình đang học gì, cần cải thiện ở đâu.
Thực hành liên tục – học đi đôi với làm
Mỗi buổi học đều đi kèm:
- Bài tập áp dụng ngay
- Bài luyện tập từ dễ đến khó
- Hướng dẫn sửa lỗi chi tiết
Giúp học viên hiểu sâu, nhớ lâu và tránh các lỗi sai phổ biến khi code
Giáo trình độc quyền, tối ưu cho người mới
Tài liệu học tại Code Dream được biên soạn riêng:
- Ngắn gọn, dễ hiểu
- Có ví dụ minh họa rõ ràng
- Phù hợp với người chưa có nền tảng
Bạn sẽ không còn cảm giác “học mà không hiểu mình đang học gì”
Đội ngũ giáo viên chất lượng, giàu kinh nghiệm
Học viên được học cùng:
- Giáo viên có chuyên môn vững về toán và lập trình
- Kinh nghiệm giảng dạy thực tế
- Luôn hỗ trợ, giải đáp tận tình
- Không chỉ dạy cách làm, mà còn dạy cách tư duy

Code Dream hướng tới việc giúp học viên hiểu đúng bản chất – áp dụng thành thạo – tự tin làm bài và lập trình.
Trên đây là tổng hợp các phép toán trên ma trận bạn cần nắm được. Nếu bạn đang tìm kiếm một lộ trình học bài bản, dễ hiểu và có tính ứng dụng cao, Code Dream sẽ là lựa chọn phù hợp để đồng hành cùng bạn trên con đường chinh phục toán học và lập trình thuật toán. Liên hệ ngay với Code Dream để được tư vấn luôn và ngay nhé!





