我试图用下面的代码将一个数组值与上一个数组值和下一个数组值进行比较,但是我在数组错误中得到了太多的索引,我想绕过它,但是我不知道怎么做
spikes=print(M.V[0])
#iterate in list of M.V[0] with three iterators to find the spikes
for i,x in enumerate(M.V[0]):
if (i>=1):
if x[i-1]<x[i] & x[i]>x[i+1] & x[i]>25*mV:
spikes+=1
print(spikes)
我得到一个错误:
IndexError Traceback (most recent call last)
<ipython-input-24-76d7b392071a> in <module>
3 for i,x in enumerate(M.V[0]):
4 if (i>=1):
----> 5 if x[i-1]<x[i] & x[i]>x[i+1] & x[i]>25*mV:
6 spikes+=1
7 print(spikes)
~/anaconda3/lib/python3.6/site-packages/brian2/units/fundamentalunits.py in __getitem__(self, key)
1306 single integer or a tuple of integers) retain their unit.
1307 '''
-> 1308 return Quantity(np.ndarray.__getitem__(self, key), self.dim)
1309
1310 def __getslice__(self, start, end):
IndexError: too many indices for array
请注意,M.V[0]本身就是一个数组
你说过“M.V[0]本身就是一个数组”。不过,你需要多说一点。M可能是https://brian2.readthedocs.io/en/stable/user/recording.html#recording-spikes中详述的StateMonitor对象。是这样吗
如果是这样的话,你需要给出完整的和最少的代码来理解你的细节。例如,在NeuronGroup对象中,您的神经元模型是什么?更重要的是,与其自己寻找spike事件,不如使用SpikeMonitor类,它可以极大地简化您的计划? Brian2中的SpikeMonitor类:https://brian2.readthedocs.io/en/stable/reference/brian2.monitors.spikemonitor.SpikeMonitor.html
相关问题 更多 >
编程相关推荐