【发布时间】:2021-06-27 15:17:56
【问题描述】:
这是我的代码:
signal = np.load('signal_glitches.npy')
#print(signal[:, 0])
fig,ax = plt.subplots(figsize = (10,5))
print(type(signal))
def t0_t(arr, n):
arr = list(arr)
for i in range (n):
if arr[i] <= np.mean(arr):
t = int(arr.index(max(arr)))
#print(t)
delta_t = abs(arr.index(max(arr)) - i - 1)
return (delta_t, t)
break
for i in range (len(signal[:, 0])):
ax.plot(signal[i,:], '--')
print(len(signal[235, :]))
def exp_model(time, a, tau_0, tau_1, c):
S = a * (1 - np.exp((time)/tau_0)) * np.exp((time)/tau_1) + c
for i in range (len(signal[:, 0])):
arr = signal[i,:]
n = len(signal[i,:])
time, t = t0_t(arr, n)
if time == None:
time = 199
#print(time)
ax.set_title(label = 'run7det88' + ',' + str(len(signal[:,0])) + 'glitches', y = 1.02, fontsize = 18)
plt.xlabel('ADC', fontsize = 30)
plt.ylabel('I(nA)', fontsize = 30)
plt.tight_layout()
plt.tick_params(axis = 'x', labelsize = 18, which = 'major', pad = 18)
plt.tick_params(axis = 'y', labelsize = 18, which = 'major', pad = 18)
plt.tick_params(which = 'both', width = 3)
plt.tick_params(which = 'major', length = 8)
plt.tick_params(which = 'minor', length = 4)
#axes = fig.add_subplot(111)
蟒蛇注意到:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-154-e3826bc92d95> in <module>
21 arr = signal[i,:]
22 n = len(signal[i,:])
---> 23 (time, t) = t0_t(arr, n)
24 if time == None:
25 time = 199
TypeError: cannot unpack non-iterable NoneType object
我试图打印出delta_t和t,它们都返回值,我不知道如何修复它 而且我还返回整数值:199 和 200,它仍然注意到相同
【问题讨论】:
-
听起来
arr中的第一项大于平均值。这将导致if无法执行,将您直接带到break,这将隐式返回None。 -
您的函数
t0_t()正在返回None,可能是因为n为零。