编写一个矩阵类,重载矩阵加法运算。设A,B,C均为m行,n列的矩阵,要求程序能实现C=A+B的操作。
时间: 2024-12-22 12:16:47 浏览: 24
在Python中,你可以创建一个名为`Matrix`的类,然后重载加法运算符`+`以便实现矩阵相加的功能。下面是一个简单的例子:
```python
class Matrix:
def __init__(self, rows, cols):
self.rows = rows
self.cols = cols
self.data = [[0] * cols for _ in range(rows)]
# 初始化矩阵
def initialize_matrix(self, matrix_data):
if len(matrix_data) == self.rows and all(len(row) == self.cols for row in matrix_data):
self.data = matrix_data
else:
raise ValueError("Invalid dimensions")
# 重载加法操作
def __add__(self, other):
if isinstance(other, Matrix) and self.rows == other.rows and self.cols == other.cols:
result = Matrix(self.rows, self.cols)
result.initialize_matrix([[self.data[i][j] + other.data[i][j] for j in range(self.cols)] for i in range(self.rows)])
return result
else:
raise TypeError("Unsupported operand types for addition")
# 使用示例
def add_matrices(A, B):
A.init_matrix(A_data) # 假设已提供A的初始化数据
B.init_matrix(B_data) # 假设已提供B的初始化数据
C = A + B # 这里A和B的数据会相加并返回一个新的矩阵C
print("Matrix C is:")
for row in C.data:
print(row)
# 示例矩阵数据
A_data = [[1, 2], [3, 4]]
B_data = [[5, 6], [7, 8]]
# 现在你可以通过add_matrices函数计算C=A+B
```
在这个例子中,我们首先定义了一个矩阵类,它有`rows`和`cols`属性以及一个存储元素的二维列表`data`。`__init__`方法用于初始化矩阵,`initialize_matrix`方法用于设置矩阵的初始值。
`__add__`方法实现了矩阵的加法运算,它检查传入的对象是否也是`Matrix`类型,并且维度相同。如果满足条件,就将两个矩阵对应位置的元素相加,然后返回结果矩阵。如果不满足条件,就会抛出异常。
最后,`add_matrices`函数展示了如何使用这个类来进行矩阵加法。你需要提供每个矩阵的初始化数据,例如`A_data`和`B_data`。
阅读全文