繁体   English   中英

python,矩阵 object 调用

[英]python, matrix object calling

也许是一个微不足道的问题,但我在调用 object 时遇到了麻烦。 如何从此 class 调用 object 并可能正确调用 add 方法?

示例代码:

class MyMatrix:
    height = 0
    width = 0
    data = tuple()

    def __init__(self, data):
        self.height = len(data)
        self.width = len(data[0])
        self.data = data

    def add(mat1, mat2):
        if mat1.height != mat2.height or mat1.width != mat2.width:
            print("The matrices are not the same size!")
            return

        rows = []
        for i in range(len(mat1.data)):
            row = []
            for j in range(len(mat1.data[0])):
                row.append(mat1[i][j] + mat2[i][j])

            rows.append(tuple(row))
        return MyMatrix(tuple(rows))

预先感谢您的每一个答案。

您可以调用如下方法; 但是,要使您的代码正常工作,您需要实现 getitem (以便您可以执行 matrix[1][2] 例如)。

class MyMatrix:
    height = 0
    width = 0
    data = tuple()

    def __init__(self, data):
        self.height = len(data)
        self.width = len(data[0])
        self.data = data

    def __getitem__(self, item):
        return self.data.__getitem__(item)

    def add(mat1, mat2):
        if mat1.height != mat2.height or mat1.width != mat2.width:
            print("The matrices are not the same size!")
            return

        rows = []
        for i in range(len(mat1.data)):
            row = []
            for j in range(len(mat1.data[0])):
                row.append(mat1[i][j] + mat2[i][j])

            rows.append(tuple(row))
        return MyMatrix(tuple(rows))


m1 = MyMatrix([[1,2,3]])
m2 = MyMatrix([[3,2,1]])
m12 = m1.add(m2)
print(m12.data)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM