Brian2学习笔记--TimedArray

TimedArray是一个用于表示在特定时间点具有已知值的数据结构,常用于描述非连续的物理量如电压。它可以是一维,如在Example1中展示的电压变化,也可以是二维,如Example2中表示多个神经元或突触的电压。在Example3和Example4中,利用numpy的hstack和vstack函数创建了复杂的刺激序列,显示了TimedArray在构建时间和空间模式中的灵活性。
摘要由CSDN通过智能技术生成

简介

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))

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值