code: def generate_data(N=100):
      X = np.random.rand(N)[:, None] * 10 - 5  # Inputs = N x D
      G = np.hstack(
          (0.5 * np.sin(3 * X) + X, 3.0 * np.cos(X) - X)
      )  # G = N x L
      W = np.array([[0.5, -0.3, 1.5], [-0.4, 0.43, 0.0]])  # L x P
      F = np.matmul(G, W)  # N x P
      Y = F + np.random.randn(*F.shape) * [0.2, 0.2, 0.2]
  
      return X, Y
  
file_path: GPflow/doc/sphinx/notebooks/advanced/multioutput.pct.py
imports: import matplotlib.pyplot
  import numpy
  import gpflow
  from gpflow.ci_utils import reduce_in_tests
  from gpflow.utilities import print_summary
label_desc: Use image node_id 1 for calling a global function with example usage: generate_data(N) and returns: X,  Y