我想創建一個能夠在矩陣之間進行所有可能計算的類。輸入是一個矩陣(大小無關緊要),在該矩陣上,該類應該進行任何計算 - 無論是乘法,合併還是減法。不同的功能如下: 我需要在這個類:如何在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
中已經有一個很好的實現。你能提供你的代碼和你卡在哪裏嗎? – Jacob 2011-05-20 12:10:37
看起來像一個好的開始,那麼究竟是什麼問題? – martineau 2011-05-20 17:23:07
我猜測,但它看起來像你的幾個方法應該返回一個新的矩陣,而不是一個列表,或者可能在'self.data'就地修改矩陣。 – martineau 2011-05-20 17:28:56