code: def get_transform_matrix(from_frame, to_frame):
      
      path, distance = coord.frame_transform_graph.find_shortest_path(
          from_frame, to_frame)
  
      matrices = []
      currsys = from_frame
      for p in path[1:]:  # first element is fromsys so we skip it
          trans = coord.frame_transform_graph._graph[currsys][p]
          if isinstance(trans, coord.DynamicMatrixTransform):
              M = trans.matrix_func(currsys(), p)
          elif isinstance(trans, coord.StaticMatrixTransform):
              M = trans.matrix
          else:
              raise ValueError("Transform path contains a '{0}': cannot "
                               "be composed into a single transformation "
                               "matrix.".format(trans.__class__.__name__))
  
          matrices.append(M)
          currsys = p
  
      M = None
      for Mi in reversed(matrices):
          if M is None:
              M = Mi
          else:
              M = matrix_product(M, Mi)
  
      return M
docs: Compose sequential matrix transformations (static or dynamic) to get a
      single transformation matrix from a given path through the Astropy
      transformation machinery.
  
      Parameters
      ----------
      from_frame : `~astropy.coordinates.BaseCoordinateFrame` subclass
          The *class* of the frame you're transforming from.
      to_frame : `~astropy.coordinates.BaseCoordinateFrame` subclass
          The *class* of the frame you're transfrorming to.