矩阵乘法是线性代数中的一个基本概念,也是计算机科学中常见的一种运算。在C语言中,实现矩阵乘法相对简单,但需要一定的编程技巧。本文将详细介绍如何在C语言中实现数组矩阵乘法,并提供详细的代码示例。
矩阵乘法的基本概念
在矩阵乘法中,我们有两个矩阵A和B,它们的乘积是一个新矩阵C。矩阵A的行数必须等于矩阵B的列数,才能进行乘法运算。
假设矩阵A是一个m×n的矩阵,矩阵B是一个n×p的矩阵,那么它们的乘积C是一个m×p的矩阵。
实现矩阵乘法的步骤
1. 定义矩阵
首先,我们需要定义两个矩阵A和B,以及它们对应的行数、列数和乘积矩阵C。
#define ROWS 3
#define COLS 2
#define COLS_B 3
int A[ROWS][COLS] = {
{1, 2},
{3, 4},
{5, 6}
};
int B[COLS][COLS_B] = {
{7, 8, 9},
{10, 11, 12}
};
2. 初始化乘积矩阵
接下来,我们需要初始化乘积矩阵C,其行数为A的行数,列数为B的列数。
int C[ROWS][COLS_B] = {0};
3. 计算乘积
使用嵌套循环遍历矩阵A和B的元素,计算乘积矩阵C的每个元素。
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS_B; j++) {
for (int k = 0; k < COLS; k++) {
C[i][j] += A[i][k] * B[k][j];
}
}
}
4. 打印结果
最后,打印乘积矩阵C。
printf("C = \n");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS_B; j++) {
printf("%d ", C[i][j]);
}
printf("\n");
}
代码示例
以下是完整的代码示例,实现了矩阵乘法。
#include <stdio.h>
#define ROWS 3
#define COLS 2
#define COLS_B 3
int main() {
int A[ROWS][COLS] = {
{1, 2},
{3, 4},
{5, 6}
};
int B[COLS][COLS_B] = {
{7, 8, 9},
{10, 11, 12}
};
int C[ROWS][COLS_B] = {0};
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS_B; j++) {
for (int k = 0; k < COLS; k++) {
C[i][j] += A[i][k] * B[k][j];
}
}
}
printf("C = \n");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS_B; j++) {
printf("%d ", C[i][j]);
}
printf("\n");
}
return 0;
}
运行以上代码,将得到以下输出:
C =
29 34
69 82
109 126
这样,我们就成功地使用C语言实现了数组矩阵乘法。希望本文对您有所帮助!
