วันเสาร์ที่ 24 ตุลาคม พ.ศ. 2558

LAB 6 Matrix

def setup():
   matrix_one = [[10,20],[15,15]] # row 1 and row 2
   matrix_two = [[15,15],[10,20]] # row 1 and row 2
   display(matrix_one)
   print (",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,")
   display(add_two_matrix(matrix_one,matrix_two))
   print (",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,")
   display(subtract_two_matrix(matrix_one,matrix_two))
   print ("......................................")
   display(multiply_two_matrix(matrix_one,matrix_two))
   print ("''''''''''''''''''''''''''''''''''''''")





def display(matrix):
   count_matrix = 0
   matrix = sort(matrix)
   while ( count_matrix < len(matrix)):
      print (matrix[count_matrix])
      count_matrix = count_matrix +1

def sort(matrix):
   count = 0
   result = make_zero_slot(matrix)
   count_result = 0
   while(count_result<len(result)):
      result[count_result] = make_zero_slot(matrix[0])
      count_result = count_result +1
   while(count < len(matrix)):
      count_sub = 0
      while(count_sub<len(matrix[count])):
         result[count][count_sub] =  matrix[count][count_sub]
         count_sub = count_sub + 1
      count = count +1
   return result

def add_two_matrix(matrix_one,matrix_two): #return after sort matrix
   new_matrix_after_add = [[],[]]
   count_matrix = 0                                # index of them
   while(count_matrix < len(matrix_one)):
      count_sub_matrix = 0                         # sub index
      while(count_sub_matrix < len(matrix_one[count_matrix])):
            new_matrix_after_add[count_matrix] = new_matrix_after_add[count_matrix]+[matrix_one[count_matrix][count_sub_matrix] + matrix_two[count_matrix][count_sub_matrix]]
            count_sub_matrix = count_sub_matrix +1
      count_matrix = count_matrix + 1
   return new_matrix_after_add

def subtract_two_matrix(matrix_one,matrix_two): #return after sort matrix
   new_matrix_after_subtract = [[],[]]
   count_matrix = 0                                # index of them
   while(count_matrix < len(matrix_one)):
      count_sub_matrix = 0                         # sub index
      while(count_sub_matrix < len(matrix_one[count_matrix])):
            new_matrix_after_subtract[count_matrix] = new_matrix_after_subtract[count_matrix]+[matrix_one[count_matrix][count_sub_matrix] - matrix_two[count_matrix][count_sub_matrix]]
            count_sub_matrix = count_sub_matrix +1
      count_matrix = count_matrix + 1
   return new_matrix_after_subtract

def multiply_two_matrix(matrix_one,matrix_two):
   if(len(matrix_one)==len(matrix_two)):
      result = make_zero_slot(matrix_one)
      count_result = 0
      while(count_result<len(result)):
         result[count_result] = make_zero_slot(matrix_two[0])
         count_result = count_result +1
      count_row_one = 0
      while(count_row_one < len(matrix_one)):
         count_colum_two = 0
         while(count_colum_two < len(matrix_two[0])):
               count_colum_one = 0
               sumRow = 0
               while(count_colum_one < len(matrix_one[count_row_one])):
                   sumRow = sumRow + matrix_one[count_row_one][count_colum_one]*matrix_two[count_colum_one][count_colum_two]
                   count_colum_one = count_colum_one +1
               result[count_row_one][count_colum_two] =  sumRow
               count_colum_two = count_colum_two +1
         count_row_one = count_row_one +1
      return result
   else:
      return "can't do that"
 
def make_zero_slot(matrix):
   result = []
   count_colum = 0
   while(count_colum < len(matrix)):
      result = result + ["0"]
      count_colum = count_colum + 1
   return result


setup()

ผลลัพธ์
[10, 20]
[15, 15]
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
[25, 35]
[25, 35]
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
[-5, 5]
[5, -5]
......................................
[350, 550]
[375, 525]
''''''''''''''''''''''''''''''''''''''

ไม่มีความคิดเห็น:

แสดงความคิดเห็น