如何将两个矩阵作为输入

时间:2013-03-27 21:50:05

标签: python matrix addition

在这段代码中,我想找到矩阵的加法。 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函数将两个矩阵作为输入并返回,并添加两个输入作为结果。

2 个答案:

答案 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]]