简介
TimedArray是时间的函数,其中明确给出了给定时间点的值(比如电压)。这对于描述非连续刺激尤其有用。
其函数定义如下:
TimedArray([x1, x2, ...], dt=my_dt), the value x1 will be returned for all 0<=t<my_dt, x2 for my_dt<=t<2*my_dt
示例
Example1
# example1
ta = TimedArray([1, 2, 3, 4] * mV, dt=0.1*ms)
# 打印0.3ms时刻的对应电压 -> 4 mV
print(ta(0.3*ms))
Example2
# example2
# 二维:第一个维度表示时间,第二个维度表示神经元或者突触的索引
ta2d = TimedArray([[1, 2], [3, 4], [5, 6]]*mV, dt=0.1*ms)
# 0.2ms时刻,Neuron 1 的电压值 -> 6mV
print(ta2d(0.2*ms, 1))
Example3
# example3
# hstack函数水平连接100个[c,c,c,0,0]这样的block,每个block50ms。
stimulus_h = TimedArray(np.hstack([[c, c, c, 0, 0] for c in np.random.rand(100)]), dt=10*ms)
Example4
# example4
# vstack函数垂直连接10个[1,2,3,0,0]这样的block,形成二维向量。
stimulus_v = TimedArray(np.vstack([[i, i, i, 0, 0] for i in range(10)]), dt=10*ms)
# 输出10ms时刻,Neuron 2 的值 -> 1
print(stimulus_v(10*ms, 2))