矩陣乘法是線性代數中的核心運算,廣泛應用於圖形學、科學計算與機器學習等領域。給定兩個矩陣 A(m×s)與 B(s×n),其乘積 C = A × B 將是一個 m×n 的矩陣。結果矩陣 C 中的每個元素 C[i][j] 等於 A 的第 i 行向量與 B 的第 j 列向量的內積(點積),即:
C[i][j] = Σ (A[i][k] × B[k][j]),其中 k 從 0 到 s-1。
這意味著 A 的列數必須等於 B 的行數(即 s),乘法才有定義。下圖示意了矩陣乘法的行列對應關係:

以下提供一個標準的 C 語言實現,包含輸入讀取、三重迴圈運算與結果輸出:
#include <stdio.h>
// 宏定義矩陣最大維度
#define MAX_ROW 200
#define MAX_COL 200
int main() {
int i, j, k;
int m, s, n; // A: m×s, B: s×n, C: m×n
int A[MAX_ROW][MAX_COL], B[MAX_ROW][MAX_COL], C[MAX_ROW][MAX_COL] = {{0}};
// 1. 讀取矩陣維度
scanf("%d %d %d", &m, &s, &n);
// 2. 讀取矩陣 A
for (i = 0; i < m; i++)
for (j = 0; j < s; j++)
scanf("%d", &A[i][j]);
// 3. 讀取矩陣 B
for (i = 0; i < s; i++)
for (j = 0; j < n; j++)
scanf("%d", &B[i][j]);
// 4. 矩陣乘法核心運算
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
for (k = 0; k < s; k++) {
C[i][j] += A[i][k] * B[k][j];
}
}
}
// 5. 輸出結果矩陣 C
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++)
printf("%d ", C[i][j]);
putchar('\n');
}
return 0;
}
此代碼為教學示例,實際工程中大規模矩陣運算通常會使用優化庫(如 BLAS、OpenBLAS)或平行運算(GPU/CUDA)以提升性能。