Skip to content

Commit d040988

Browse files
authored
Add files via upload
Utility functions for playing with matrices
1 parent ee6a022 commit d040988

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

Matrix_Operations.py

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import numpy as np
2+
3+
def MatrixAddition(matrix_a, matrix_b):
4+
matrix_a, matrix_b = np.array(matrix_a), np.array(matrix_b)
5+
m,n = matrix_a.shape
6+
matrix_c = [[0 for i in range(m)] for j in range(n)]
7+
for i in range(m):
8+
for j in range(n):
9+
matrix_c[i][j] += matrix_a[i][j] + matrix_b[i][j]
10+
return np.array(matrix_c)
11+
12+
def MatrixSubtraction(matrix_a, matrix_b):
13+
matrix_a, matrix_b = np.array(matrix_a), np.array(matrix_b)
14+
m,n = matrix_a.shape
15+
matrix_c = [[0 for i in range(m)] for j in range(n)]
16+
for i in range(m):
17+
for j in range(n):
18+
matrix_c[i][j] += matrix_a[i][j] - matrix_b[i][j]
19+
return np.array(matrix_c)
20+
21+
def MatrixMultiplication(matrix_a, matrix_b):
22+
matrix_a, matrix_b = np.array(matrix_a), np.array(matrix_b)
23+
m,n = matrix_a.shape
24+
n,p= matrix_b.shape
25+
matrix_c = [[0 for j in range(p)] for i in range(m)]
26+
for i in range(m):
27+
for j in range(p):
28+
for k in range(n):
29+
matrix_c[i][j] += matrix_a[i][k]*matrix_b[k][j]
30+
return np.array(matrix_c)
31+
32+
def ifSymmetric(matrix):
33+
matrix = np.array(matrix)
34+
matrix_transpose = matrix.transpose()
35+
if ((matrix_transpose == matrix).sum() == matrix.shape[0]*matrix.shape[1]):
36+
print(f"The matrix:\n{matrix} is symmetric!")
37+
else:
38+
print(f"The matrix:\n{matrix} is not symmetric..")
39+
40+
def compute_determinant(matrix):
41+
matrix= np.array(matrix)
42+
if (matrix.shape[0] != matrix.shape[1]):
43+
print("Oops, the determinant of a non-square matrix cannot be computed..")
44+
det = np.linalg.det(matrix)
45+
print(f"The determinant of \n{matrix} is: %.3f"%det)

0 commit comments

Comments
 (0)