矩阵加法要求两矩阵同型(行数与列数均相等),再逐元素相加得结果矩阵ci = ai + bi;需先校验维度,不一致则报错,通常新建结果数组以保护原始数据。

用二维数组实现矩阵加法,关键是保证两个矩阵的行数和列数完全相同,然后逐个位置相加。
矩阵加法的基本前提
只有同型矩阵(即行数相等、列数也相等)才能相加。比如一个 3×2 的矩阵只能和另一个 3×2 的矩阵相加,结果仍是 3×2 矩阵。
- 若输入矩阵 A 和 B 的维度不一致,应提前检查并报错
- 加法是对应元素相加:C[i][j] = A[i][j] + B[i][j]
- 不需要额外空间也可原地计算,但通常建议新建结果数组,避免修改原始数据
用 C 语言实现示例
以下是一个固定大小(如 3×3)的简单实现:
快速生成专业的 Python 脚本和应用代码。一键创建完整项目结构,支持CLI、API、爬虫、Bot、Django等多种项目类型,包含完整的项目结构、配置文件、依赖管理、测试、README和文档。
#include <stdio.h>
#define ROWS 3
#define COLS 3
<p>void matrixAdd(int A[ROWS][COLS], int B[ROWS][COLS], int C[ROWS][COLS]) {
for (int i = 0; i </p>
<p>int main() {
int A[ROWS][COLS] = {{1,2,3}, {4,5,6}, {7,8,9}};
int B[ROWS][COLS] = {{9,8,7}, {6,5,4}, {3,2,1}};
int C[ROWS][COLS];</p>
<pre class="brush:java;toolbar:false;">matrixAdd(A, B, C);
// 打印结果
for (int i = 0; i <p>}</p>支持动态尺寸的通用思路(以 Python 为例)
如果矩阵大小不固定,可用嵌套列表模拟二维数组,更灵活:
def matrix_add(A, B):
if len(A) != len(B) or len(A[0]) != len(B[0]):
raise ValueError("矩阵维度不匹配,无法相加")
<pre class="brush:java;toolbar:false;">rows, cols = len(A), len(A[0])
C = [[0] * cols for _ in range(rows)]
for i in range(rows):
for j in range(cols):
C[i][j] = A[i][j] + B[i][j]
return C示例
A = [[1, 2], [3, 4]] B = [[5, 6], [7, 8]] C = matrix_add(A, B) # 结果:[[6, 8], [10, 12]]
常见注意事项
实际编码中容易忽略但关键的细节:
- 必须校验两个矩阵是否同型,否则越界或逻辑错误
- C/C++ 中二维数组传参时,列数(第二维)必须是编译期常量;如需完全动态,改用指针数组或一维模拟二维
- 整数溢出在大规模数值运算中可能出现,必要时使用 long 或检查范围
- 若矩阵稀疏(大量零),可考虑其他结构(如字典或三元组)提升效率,但二维数组最直观适合教学和小规模场景










