【发布时间】:2017-07-14 16:34:03
【问题描述】:
p = []
for i in range(len(f)):
p.append(peakdetect(H, 0.1))
plt.plot(Freq[p], f)
因为整个代码比较复杂所以只附上bug所在的部分。
我想绘制一个关于 Freq 和 f 的图表。而p是下面显示的索引,
[[126, 269, 409, 542],
[145, 288, 427, 558],
[162, 305, 443, 572],
[177, 320, 457],
[191, 334, 471],
[204, 347, 483],
[217, 359, 494],
[228, 370, 504],
[238, 380, 513],
[248, 389, 521],
[257, 398, 528],
[265, 406, 535],
[273, 414, 541],
[280, 421, 546],
[287, 428, 551],
[294, 434],
[300, 440],
[306, 445],
[312, 451],
[317, 455],
[322, 460],
[327, 464],
[331, 468],
[336, 472],
[340, 476],
[344, 479],
[348, 482],
[351, 486],
[355, 488],
[358, 491],
[361, 494],
[364, 496],
[367, 498],
[370, 500],
[373, 502],
[375, 504],
[378, 506],
[380, 507],
[383, 509],
[385, 510],
[387, 511],
[389, 512],
[392, 513],
[394, 514],
[395, 515],
[397, 515],
[399, 516],
[401, 516],
[403],
[404],
[406],
[408],
[409],
[411],
[412],
[413],
[415],
[416],
[417],
[419],
[420]]
其中,
f[0] corresponds to [126, 269, 409, 542]
f[1] corresponds to [145, 288, 427, 558]
f[2] corresponds to [162, 305, 443, 572]
f[3] corresponds to [177, 320, 457]
f[4] corresponds to [191, 334, 471]
...
你看,列表 p 没有完成 4 列,所以当我运行它时,它显示错误:only integers, slices (:), ellipsis (...), numpy.newaxis (None) 和整数或布尔数组是有效的索引。
因此,我认为一种方法是使用 None 来完成该列的其余部分,但我不确定。另一种方法是对列进行切片,但使用列表字符,很难操作。
peakdetect(H, 0.1) 是一个自定义函数。不用担心。
【问题讨论】:
标签: python list matplotlib append