编写程序实现下列操作,有两个矩阵a和b,均为3行2列,定义矩阵类Matrix,重载运算符“+”,使之能用于两矩阵相加。在主函数中对矩阵a,b相加进行测试,并输出结果。
时间: 2024-11-03 09:22:58 浏览: 17
C++实验项目 1.编写矩阵类Matrix-4x4,实现矩阵初始化、求逆、转置、访问等基本功能 2.基于运算符重载,实现矩阵的加
在Python中,你可以创建一个名为`Matrix`的类,然后重载加法运算符`+`来实现两个矩阵的相加。以下是简单的实现步骤:
```python
class Matrix:
def __init__(self, rows, cols, data=None):
self.rows = rows
self.cols = cols
if data is None:
self.data = [[0] * cols for _ in range(rows)]
else:
self.data = data
def __add__(self, other):
# 确保两个矩阵有相同的行数和列数
assert self.rows == other.rows and self.cols == other.cols
result = Matrix(self.rows, self.cols)
result.data = [list(map(sum, zip(self.data[row], other.data[row]))) for row in range(self.rows)]
return result
# 创建矩阵a和b
matrix_a = Matrix(3, 2, [[1, 2], [3, 4], [5, 6]])
matrix_b = Matrix(3, 2, [[7, 8], [9, 10], [11, 12]])
# 相加并打印结果
result = matrix_a + matrix_b
for row in result.data:
print(row)
# 主函数测试
def main():
sum_matrix = matrix_a + matrix_b
print("Sum of matrices a and b:")
sum_matrix.print_matrix() # 假设print_matrix是一个展示矩阵的方法
if __name__ == "__main__":
main()
```
在这个例子中,我们首先定义了一个`Matrix`类,它有一个初始化方法`__init__`用于设置矩阵的行、列以及数据。接着,我们重载了`__add__`方法,通过比较两个矩阵的尺寸并使用列表推导式实现了加法操作。
在主函数`main`中,我们创建了两个矩阵实例`matrix_a`和`matrix_b`,然后对它们进行了相加,并打印出结果。注意这里假设已经有了一个`print_matrix`方法来方便地显示矩阵。
阅读全文