input: Write a function to perform matrix multiplication on two given matrices. If the matrices are not multiplication compatible (i.e., the number of columns in the first matrix is not equal to the number of rows in the second matrix), return None. If the matrices are empty, return an empty list.
  def matrix_multiplication(A, B):
      if len(A) == 0 or len(B) == 0:
          return []
      rows_A = len(A)
      cols_A = len(A[0])
      rows_B = len(B)
      cols_B = len(B[0])
      if cols_A != rows_B:
          return None
      result = [[0 for i in range(cols_B)] for j in range(rows_A)]
      for i in range(rows_A):
          for j in range(cols_B):
              for k in range(cols_A):
                  result[i][j] += A[i][k] * B[k][j]
      return result
  assert matrix_multiplication([[1, 2], [3, 4]], [[5, 6], [7, 8]])==[[19, 22], [43, 50]]
  assert matrix_multiplication([[1, 2], [3, 4]], [[1, 2, 3], [4, 5, 6]])==[[9, 12, 15], [19, 26, 33]]
  assert matrix_multiplication([[1]], [[2]])==[[2]]
  assert matrix_multiplication([], [])==[]
  assert matrix_multiplication([[1, 2, 3]], [[4], [5]])==None
output: def matrix_multiplication(A, B):
      if len(A) == 0 or len(B) == 0:
          return []
      rows_A = len(A)
      cols_A = len(A[0])
      rows_B = len(B)
      cols_B = len(B[0])
      if cols_A != rows_B:
          return None
      result = [[0 for i in range(cols_B)] for j in range(rows_A)]
      for i in range(rows_A):
          for j in range(cols_B):
              for k in range(cols_A):
                  result[i][j] += A[i][k] * B[k][j]
      return result