1. Cộng, Trừ 2 Ma Trận
Điều kiện để 2 ma trận có thể cộng trừ với nhau đó là chúng cần có cùng số hàng và cột.
Giả sử cần cộng 2 ma trận A và B có cùng hàng và cột để tạo ra ma trận tổng C thì C[i][j] = A[i][j] + B[i][j]
Phép trừ 2 ma trận thì bạn làm tương tự
Code :
#include "stdio.h" int main(){ int n = 3, m = 4; int a[3][4] = { {2, 3, 1, 4}, {2, 2, 0, 7}, {1, 3, 5, 1} }; int b[3][4] = { {2, 0, 7, 8}, {1, 3, 5, 2}, {3, 2, 8, 1} }; int tong[3][4], hieu[3][4]; for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ tong[i][j] = a[i][j] + b[i][j]; hieu[i][j] = a[i][j] - b[i][j]; } } printf("Tong 2 ma tran : \n"); for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ printf("%d ", tong[i][j]); } printf("\n"); } printf("Hieu 2 ma tran : \n"); for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ printf("%d ", hieu[i][j]); } printf("\n"); } return 0; }
Output :
Tong 2 ma tran : 4 3 8 12 3 5 5 9 4 5 13 2 Hieu 2 ma tran : 0 3 -6 -4 1 -1 -5 5 -2 1 -3 0
2. Nhân 2 Ma Trận
Giả sử bạn cần nhân ma trận A[n][m] với ma trận B[p][q] thì điều kiện để xảy ra phép nhân ma trận đó là : Số cột của ma trận A bằng số hàng của ma trận B
Tức là m phải bằng p, khi đó ma trận tích sẽ có cỡ C[n][q]
Ví dụ :
A[3][4] x B[4][2] = C[3][2]
A[3][4] x B[4][5] = C[3][5]
A[2][4] X B[2][3] = Không xảy ra
Để tạo ra ma trận tích C thì C[i][j] = ∑A[i][k] * B[k][j] với k chạy từ 0 tới m (p)
Hiểu đơn giản thì khi tích phần tử C[i][j] bạn sẽ nhân lần lượt các phần tử ở hàng i của ma trận A với các phần tử ở cột j của ma trận b sau đó cộng dồn lại
Code :
#include "stdio.h" int main(){ int n = 2, m = 3, q = 2; //a[n][m], b[m][q] int a[n][m] = { {1, 2, 3}, {4, 5, 6} }; int b[m][q] = { {10, 11}, {20, 22}, {30, 33} }; int c[n][q]; for(int i = 0; i < n; i++){ for(int j = 0; j < q; j++){ c[i][j] = 0; for(int k = 0; k < m; k++){ c[i][j] += a[i][k] * b[k][j]; } } } printf("Tich 2 ma tran : \n"); for(int i = 0; i < n; i++){ for(int j = 0; j < q; j++){ printf("%d ", c[i][j]); } printf("\n"); } return 0; }
Output :
Tich 2 ma tran : 140 154 320 352
Xem thêm video bài giảng về mảng 2 chiều của mình