簡體   English   中英

如何在python中創建一個矩陣計算類?

[英]how to create a between matrix calculations class in python?

我正在嘗試創建一個能夠在矩陣之間進行所有可能計算的類。 輸入是一個矩陣(與大小無關),在該矩陣上,類應該進行任何計算 - 乘法,組合或減法。 不同的功能如下:我需要在這個課程中:

__init__(self, data)

get_width(self)

get_height(self)

add(self, m)

scalar_multiply(self, a)

subtract(self, m)

multiply(self, m)

compare(self, m)

非常感謝,它還需要采取簡單的行動。
這是我的代碼,直到現在:

class Matrix:
    def __init__(self, data):
        self.data = data

    def get_width(self):
        return len(self.data[0])

    def get_height(self):
        return len(self.data)

    def add(self, m):
        lines = []
        for j in range(len(self.data)):
            line = []
            for i in range(len(self.data[j])):
                line.append(self.data[j][i] + m[j][i])
            lines.append(line)
        return lines

    def scalar_multiply(self, a):
        res = []
        for j in range(len(self.data)):
            line = []
            for i in range(len(self.data)):
                line.append(self.data[j][i]*a)
            res.append(line)
        return res

    def subtract(self, m):
        lines = []
        for j in range(len(self.data)):
            line = []
            for i in range(len(self.data)):
                line.append(self.data[j][i] - m[j][i])
            lines.append(line)
        return lines

    def multiply(self, m):
        lines = []
        for j in range(len(self.data-1)):
            line = []
            for i in range(len(m[0])-1):
                schum = 0
                for k in range(len(self.data[0]-1)):
                    schum = self.data[j][k]*m[k][i]
                line.append(schum)
            lines.append(line)
        return lines

    def compare(self, m):
        for j in range(len(self.data)):
            for i in range(len(self.data)[j]):
                while self.data[j][i] == m[j][i]:
                    return True
                else:
                    return False

你需要自己創建嗎? 如果沒有,那么在numpy中已經有了很好的實現

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM