2 views
in Python

I'm trying to multiply two matrices together using pure Python. Input (X1 is a 3x3 and Xt is a 3x2):

X1 = [[1.0016, 0.0, -16.0514], [0.0, 10000.0, -40000.0], [-16.0514, -40000.0, 160513.6437]]

Xt = [(1.0, 1.0), (0.0, 0.25), (0.0, 0.0625)]

where Xt is the zip transpose of another matrix. Now here is the code:

def matrixmult (A, B):

C = [[0 for row in range(len(A))] for col in

range(len(B[0]))]

for i in range(len(A)):

for j in range(len(B[0])):

for k in range(len(B)):

C[i][j] += A[i][k]*B[k][j]

return C

The error that python gives me is this:

IndexError: list index out of range.

Now I'm not sure if Xt is recognized as a matrix and is still a list object, but technically this should work.

by (106k points)

You can use the below-mentioned code for matrix multiplication:-

def matmult(a,b):

zip_b = zip(*b)

zip_b = list(zip_b)

return [[sum(ele_a*ele_b for ele_a, ele_b in zip(row_a,

col_b)) for col_b in zip_b] for row_a in a]

x = [[1,2,3],[4,5,6],[7,8,9],[10,11,12]]

y = [[1,2],[1,2],[3,4]]

import numpy as np

mx = np.matrix(x)

my = np.matrix(y)