有两个矩阵a和b,均为2行3列。用面向对象的方法求两个矩阵之和。要求根据mainO函数中的操作去设计M类,在该类中根据运算符操作的要求去重载相应的运算符。两矩阵相加c=a+b: 输入第一个矩阵数据为 123 456 第二个矩阵数据为 11 111 则两矩阵和为 234 567
时间: 2023-05-23 13:07:02 浏览: 61
以下是代码实现:
```python
class M:
def __init__(self, arr):
self.arr = arr
def __add__(self, other):
res = []
for i in range(len(self.arr)):
res.append([self.arr[i][j] + other.arr[i][j] for j in range(len(self.arr[0]))])
return M(res)
def __str__(self):
res = ''
for i in range(len(self.arr)):
res += ' '.join([str(x) for x in self.arr[i]]) + ' '
res += '\n'
return res
def mainO():
a_arr = input("输入第一个矩阵数据为").split()
a = [[int(a_arr[i*3+j]) for j in range(3)] for i in range(2)]
b_arr = input("第二个矩阵数据为").split()
b = [[int(b_arr[i*3+j]) for j in range(3)] for i in range(2)]
c = a + b
print("两矩阵和为", c)
if __name__ == '__main__':
mainO()
```
主要思路是定义一个M类,其中重载了"+"运算符实现矩阵加法。在mainO函数中,首先获取输入的两个矩阵a和b,然后使用重载的"+"运算符求和,并输出结果。