docs: def add_measurements(self, measurements):
          """Add new measurements to this instance
  
          Parameters
          ----------
          measurements: numpy.ndarray
              one or more measurement sets. It must either be 1D or 2D, with the
              first dimension the number of measurement sets (K), and the second
              the number of measurements (N): K x N
  
          Returns
          -------
          mid: int
              measurement ID used to extract the measurements later on
  
          Examples
          --------
          >>> import numpy as np
              import crtomo.configManager as CRconfig
              config = CRconfig.ConfigManager(nr_of_electrodes=10)
              config.gen_dipole_dipole(skipc=0)
              # generate some random noise
              random_measurements = np.random.random(config.nr_of_configs)
              mid = config.add_measurements(random_measurements)
              # retrieve using mid
              print(config.measurements[mid])
  
          """
          subdata = np.atleast_2d(measurements)
  
          if self.configs is None:
              raise Exception(
                  'must read in configuration before measurements can be stored'
              )
  
          # we try to accommodate transposed input
          if subdata.shape[1] != self.configs.shape[0]:
              if subdata.shape[0] == self.configs.shape[0]:
                  subdata = subdata.T
              else:
                  raise Exception(
                      'Number of measurements does not match number of configs'
                  )
  
          return_ids = []
          for dataset in subdata:
              cid = self._get_next_index()
              self.measurements[cid] = dataset.copy()
              return_ids.append(cid)
  
          if len(return_ids) == 1:
              return return_ids[0]
          else:
              return return_ids