# ---------------------------------------- # File: Xiang/matrixMult.py # Title: Matrix multiplication. Xiang page 282 # A is: # 3 2 5 # 1 -1 2 # B is: # -1 0 # 2 3 # 1 2 # A * B is: # 6 16 # -1 1 #--------------------------------------------- def initialize(X, N, M): # make X[N][M]= [0,..0],..[0,..0]] for i in range(N): X.append([0]*M) def printMatrix(X): for i in X: # i is X[0],X[1],.. for j in i: # j is X[0][0],X[0][1],... print j, print # endl after you print a line def mult(X,Y,Z): # X[N][M] x Y[M][K] = Z[N][K] N = len(X) # how many lines in X M = len(Y) # how many lines in Y (same as cols in X) K = len(Y[0]) # how many cols in Y for i in range(N): for j in range(K): for k in range(M): Z[i][j] = X[i][k] * Y[k][j] + Z[i][j] def main(): A = [ [3,2,5],[1,-1,2]] # A[2][3] B = [[-1,0],[2,3],[1,2]] # B[3][2] print "A is:" printMatrix(A) print "B is:" printMatrix(B) C=[] initialize(C,len(A),len(B[0])) # initialize C[2][2] with 0 mult(A,B,C) print " A * B is " printMatrix(C) main()