code: def bootstrap_trajectories(trajs, correlation_length):
      
      from scipy.stats import rv_discrete
      # if we have just one trajectory, put it into a one-element list:
      if (isinstance(trajs[0], (int, int, float))):
          trajs = [trajs]
      ntraj = len(trajs)
  
      # determine correlation length to be used
      lengths = determine_lengths(trajs)
      Ltot = np.sum(lengths)
      Lmax = np.max(lengths)
      if (correlation_length < 1):
          correlation_length = Lmax
  
          # assign probabilites to select trajectories
      w_trajs = np.zeros((len(trajs)))
      for i in range(ntraj):
          w_trajs[i] = len(trajs[i])
      w_trajs /= np.sum(w_trajs)  # normalize to sum 1.0
      distrib_trajs = rv_discrete(values=(list(range(ntraj)), w_trajs))
  
      # generate subtrajectories
      Laccum = 0
      subs = []
      while (Laccum < Ltot):
          # pick a random trajectory
          itraj = distrib_trajs.rvs()
          # pick a starting frame
          t0 = random.randint(0, max(1, len(trajs[itraj]) - correlation_length))
          t1 = min(len(trajs[itraj]), t0 + correlation_length)
          # add new subtrajectory
          subs.append(trajs[itraj][t0:t1])
          # increment available states
          Laccum += (t1 - t0)
  
      # and return
      return subs
docs: Generates a randomly resampled count matrix given the input coordinates.
  
      See API function for full documentation.