docstr: Generate signals from this model fit and a given gradient table.
  
  Parameters
  ----------
  gtab : dipy.core.gradients.GradientTable
      Gradient table with b-tensors.
  
  Returns
  -------
  S : numpy.ndarray
      Signals.
docstr_tok: ["Generate","signals","from","this","model","fit","and","a","given","gradient","table",".","Parameters","--","--","--","--","--","gtab",":","dipy.core.gradients.GradientTable","Gradient","table","with","b-tensors",".","Returns","--","--","--","-","S",":","numpy.ndarray","Signals","."]
code: def predict(self, gtab):
      """Generate signals from this model fit and a given gradient table.
  
      Parameters
      ----------
      gtab : dipy.core.gradients.GradientTable
          Gradient table with b-tensors.
  
      Returns
      -------
      S : numpy.ndarray
          Signals.
      """
      if gtab.btens is None:
          raise ValueError(
              "QTI requires b-tensors to be defined in the gradient table."
          )
      S0 = self.S0_hat
      D = self.params[..., 1:7, np.newaxis]
      C = self.params[..., 7::, np.newaxis]
      S = qti_signal(gtab, D, C, S0)
      return S
  
imports: from warnings import warn
  import numpy
  from dipy.reconst.base import ReconstModel
  from dipy.reconst.dti import auto_attr
  from dipy.utils.optpkg import optional_package
label_desc: Use image node_id 2 for calling the QtiFit obj's underlying member method code with example usage: obj.predict(gtab) and returns: S