Untitled
unknown
python
2 years ago
1.7 kB
8
Indexable
def RREF_Matrix(strArr):
rows = ",".join(strArr).split(",<>,")
matrix = []
for row in rows:
matrix.append([int(elem) for elem in row.split(",")])
def rref(matrix):
pivot = 0
for row_id in range(len(matrix)):
if pivot >= len(matrix[0]):
return
temp_row = row_id
while matrix[temp_row][pivot] == 0:
temp_row += 1
if temp_row == len(matrix):
temp_row = row_id
pivot += 1
if pivot == len(matrix[0]):
return
if temp_row != row_id:
matrix[temp_row], matrix[row_id] = matrix[row_id], matrix[temp_row]
divisor = matrix[row_id][pivot]
for elem_id in range(len(matrix[row_id])):
# Divide row matrix[row_id] by matrix[row_id][pivot]
matrix[row_id][elem_id] = matrix[row_id][elem_id] // divisor
for row_id_II in range(len(matrix)):
if row_id_II != row_id:
# Subtract matrix[row_id_II][pivot] multiplied by row matrix[row_id] from row matrix[row_id_II]
factor = matrix[row_id_II][pivot]
for elem_id in range(len(matrix[row_id_II])):
matrix[row_id_II][elem_id] = matrix[row_id_II][elem_id] - \
matrix[row_id][elem_id]*factor
pivot += 1
rref(matrix)
return "".join("".join(map(str, elem)) for elem in matrix)
# Test the function
print(RREF_Matrix(["5", "7", "8", "<>", "1", "1", "2"])) # Output should be "10301-1"
Editor is loading...
Leave a Comment