#python
#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
Комментарии:
1. Можете ли вы предоставить свой код и где вы застряли?
2. Похоже, хорошее начало, так в чем же именно проблема?
3. Я предполагаю, но похоже, что несколько ваших методов должны либо возвращать новую матрицу вместо списка, либо, возможно, изменять матрицу на
self.data
месте.
Ответ №1:
Вам нужно создать это самостоятельно? Если нет, то уже есть отличная реализация этого в numpy
Комментарии:
1. извините, не понял комментарий выше… Я предполагаю, что это ваше определение класса matrix, вместо этого обновите свой вопрос; поле комментария, как правило, плохое место для размещения кода