Матричный продукт в Python - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь умножить две матрицы вместе.Я создал класс для матриц, но у меня возникли проблемы с реализацией части продукта с математическим алгоритмом.Я знаю, что количество столбцов в первой матрице должно равняться строкам во второй, но это дает мне другой результат.И что еще более важно, верхняя строка в M1 должна содержать точку с первым столбцом M2, равную первому члену в результате, но это не так.

def Mult(self,Matrix):
    result=ClassMatrix()
    result.addRow(self.numberofRows)
    result.addColumn(Matrix.numberofColumns)
    for i in range(0,self.numberofRows):
       for j in range(0,Matrix.numberofColumns):
            result.content[i][j]=float(0.0)
    for i in range(0,self.numberofRows):
       for j in range(0,Matrix.numberofColumns):
              for k in range(0,self.numberofRows):
               result.content[i][j] += self.content[i][k] * Matrix.content[k][j]
   return result

, например, умножение матрицы 3x2 и матрицы 2x2 даетмне матрица 2х2 и вывод не является правильным целочисленным значением.Я хочу сделать это без использования Numpy

1 Ответ

0 голосов
/ 30 сентября 2018

Полагаю, вы можете попробовать вот так:

def Mult(self,Matrix):
    result=ClassMatrix()
    result.addRow(self.numberofRows)
    result.addColumn(Matrix.numberofColumns)
    for i in range(0,self.numberofRows):
       for j in range(0,Matrix.numberofColumns):
           for k in range(0,Matrix.numberofRows):
               result.content[i][j] += self.content[i][k] * Matrix.content[k][j]
    return result

например, исправить отступ, удалить внешний цикл и использовать во внутреннем цикле количество строк и столбцов матрицы для умножения.Если бы вы поделились всем кодом, было бы проще проверить ...

...