Hello, and thank you for the reply!

I have tried what you suggested, but it throws a validation error. I have managed to make it compile in a different way shown below but then I encounter another error when I try to run the simulator:

### The data

raw_data = {}

### Make it into dictionary

for i in range(data.shape[1]):

raw_data[dt*i] = data[0,i]

with Network(seed=seed) as model:

# Input is a pulse every pulse_interval seconds

U = np.zeros(int(pulse_interval / dt))

U[0] = amplitude / dt

u = nengo.Node(output=nengo.processes.PresentInput(U, dt))

```
# Desired output
z = nengo.Node(size_in=1,output=Piecewise(raw_data))
nengo.Connection(u, z)
```

# Initial weights

e_in = g_in * rng.uniform(-1, +1, (n, 1)) # fixed encoders for f_in (u_in)

e_out = g_out * rng.uniform(-1, +1, (n, 1)) # fixed encoders for f_out (u)

JD = rng.randn(n, n) * g / np.sqrt(n) # target-generating weights (variance g^2/n)

Now it fails when I try to run the simulator:

~/.local/lib/python3.6/site-packages/nengo/processes.py in make_step(self, shape_in, shape_out, dt, rng)

425 def make_step(self, shape_in, shape_out, dt, rng):

426 tp, yp = zip(*sorted(iteritems(self.data)))

–> 427 assert shape_in == (0,)

428 assert shape_out == (self.size_out,)

429

AssertionError: