在这段代码中,我想找到矩阵的加法。 A+B
[[x + y for x,y in zip(w,v)] for w,v in zip(A,B)]
当我运行程序并在python shell A+B
中写入时答案出现为[[7,4],[5,0],[4,4],[2,2],[ -3,3],[ - 2,4]]
答案应该是[[9,6],[2,3],[2,8]]
我需要在程序中集成什么,因此名为def addition (A,B)
的Python函数将两个矩阵作为输入并返回,并添加两个输入作为结果。
答案 0 :(得分:3)
或者,如果您不担心嵌套列表推导,您可以使用单行
进行此操作C = [[x + y for x,y in zip(w,v)] for w,v in zip(A,B)]
答案 1 :(得分:0)
如果要为矩阵重载运算符+
,则必须将2维列表包装到类中,并def
方法__add__
。例如(我使用你的附加功能):
>>> class Matrix(object):
@staticmethod
def addition (A, B):
d=[]
n=0
while n < len(B):
c = []
k = 0
while k < len (A[0]):
c.append(A[n][k]+B[n][k])
k=k+1
n+=1
d.append(c)
return d
def __init__(self,lst):
self.lst=lst
def __add__(self, other):
return Matrix(Matrix.addition(self.lst, other.lst))
def __repr__(self):
return str(self.lst)
>>> A=Matrix([[7,4], [5,0], [4,4]])
>>> B=Matrix([[2,2], [-3,3], [-2, 4]])
>>> A+B
[[9, 6], [2, 3], [2, 8]]