Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ##################
- ### MATRICES ###
- ##################
- # Function for Initializing a Matrix
- def initMatrix():
- rows = int(input("Enter the number of Rows: "))
- cols = int(input("Enter the number of Columns: "))
- matrix = []
- for i in range(0, rows):
- row = []
- for j in range(0, cols):
- element = int(input("Enter the element at position (" + str(i) + ", " + str(j) + "): "))
- row.append(element)
- matrix.append(row)
- return matrix
- # Function for Displaying a Matrix
- def displayMatrix(matrix):
- for i in range(0,len(matrix)):
- print()
- for j in range(0, len(matrix[0])):
- print(str(matrix[i][j]).rjust(2), end = " ")
- print()
- print()
- # Function for Adding two Matrices
- def add(matrixA, matrixB):
- sum_matrix = []
- if ( (len(matrixA) == len(matrixB)) and (len(matrixA[0]) == len(matrixB[0])) ):
- for i in range(0, len(matrixA)):
- row_sums = []
- for j in range(0, len(matrixA[0])):
- row_sums.append((matrixA[i][j] + matrixB[i][j]))
- sum_matrix.append(row_sums)
- return sum_matrix
- else:
- print("ERROR! The Matrix Dimensions DO NOT MATCH")
- return -1
- # Function for Subtracting two Matrices
- def subtract(matrixA, matrixB):
- sum_matrix = []
- if ( (len(matrixA) == len(matrixB)) and (len(matrixA[0]) == len(matrixB[0])) ):
- for i in range(0, len(matrixA)):
- row_sums = []
- for j in range(0, len(matrixA[0])):
- row_sums.append((matrixA[i][j] - matrixB[i][j]))
- sum_matrix.append(row_sums)
- return sum_matrix
- else:
- print("ERROR! The Matrix Dimensions DO NOT MATCH")
- return -1
- # Function for Initializing a Null Matrix with Given Dimensions
- def initNull(rows, cols):
- null_matrix = []
- for i in range(rows):
- null_row = []
- for j in range(cols):
- null_row.append(0)
- null_matrix.append(null_row)
- return null_matrix
- # Function for Multiplying two Matrices
- def multiply(mA, mB):
- if (len(mA[0]) == len(mB)):
- result = initNull(len(mA[0]), len(mB))
- prod_matrix = []
- for i in range(0, len(mA)):
- row_prods = []
- for j in range(0, len(mB[0])):
- term = 0
- for k in range(0, len(mA[0])):
- term += mA[i][k] * mB[k][j]
- result[i][j] = term
- return result
- # ???
- # for i in range(0, range(len(mA))):
- # row_prods = []
- # for j in range(0, range(len(mA[0]))):
- # element = (mA[i][j] * mB[j][i])
- else:
- print("ERROR! Invalid Dimensions")
- return -1
- # Function of obtaining Transpose of a Matrix
- def transpose(mA):
- ok = mA
- null_matrix = initNull(len(mA), len(mA[0]))
- for i in range(len(mA)):
- for j in range (len(mA[0])):
- null_matrix[j][i] = mA[i][j]
- return null_matrix
- print("Initializing Matrices")
- A = initMatrix()
- B = initMatrix()
- # displayMatrix(A)
- # displayMatrix(B)
- print("Addition: ")
- Sum = add(A, B)
- displayMatrix(Sum)
- print("Subtraction: ")
- Difference = subtract(A, B)
- displayMatrix(Difference)
- print("Multiplication: ")
- Multiplication = multiply(A, B)
- displayMatrix(Multiplication)
- print("Transpose: ")
- Transposed = transpose(A)
- displayMatrix(Transposed)
Advertisement
Add Comment
Please, Sign In to add comment