num_beat_pos = len(beats_pos) mid = [0]*num_beat_pos beat = [0] * (num_beat_pos-1) for i in range(num_beat_pos): mid[i] = int((beats_pos[i] + beats_pos[i+1])/2) for i in range(len(mid)-1): beat[i] = signals[mid[i]:mid[i+1]] for i in range(len(beat)): print('beat[{}]= '.format(i), beat[i]) print('\n') plt.plot(beat[i]) plt.show(),有Traceback (most recent call last): File "C:\Users\lenovo\Desktop\pythonProject_ecg (2)\pythonProject_ecg\main.py", line 80, in <module> mid[i] = int((beats_pos[i] + beats_pos[i+1])/2) IndexError: index 2274 is out of bounds for axis 0 with size 2274,请修改一下
时间: 2024-01-24 15:16:52 浏览: 68
PHP函数func_num_args用法实例分析
根错误提示,索引 2274 超出了数组大小 2274,说明在计算 mid 时超出了 beats_pos 数组的范围。可以将计算 mid 的循环范围修改为 `range(num_beat_pos-1)`,因为最后一个位置没有下一个位置可以计算 mid。
修改后的代码如下:
```
num_beat_pos = len(beats_pos)
mid = [0]*num_beat_pos
beat = [0] * (num_beat_pos-1)
for i in range(num_beat_pos-1):
mid[i] = int((beats_pos[i] + beats_pos[i+1])/2)
for i in range(len(mid)-1):
beat[i] = signals[mid[i]:mid[i+1]]
for i in range(len(beat)):
print('beat[{}]= '.format(i), beat[i])
print('\n')
plt.plot(beat[i])
plt.show()
```
请尝试修改并运行代码,查看是否能够成功执行。
阅读全文