2016-07-29 38 views
-1

这里是我的代码:获取列表对象是不是蟒蛇2.7调用错误,matplotlib

import numpy, math, time 
from matplotlib import pyplot 

def parse_FFT_hex(string): 

    invert_arrays = True 
    num_bits = 12 
    numpy.array = [] 
    overflow = False 
    ch_0_re = []; ch_0_im = []; ch_1_re = []; ch_1_im = [] 
    for i in range(0,len(string), 32): 
     # if any number is greater than 2045 return 'False' 
     ch_0_re_num = int(string[i+30] + string[i+31] + string[i+28], 16) 
     if ch_0_re_num > (2**(num_bits-1)): ch_0_re_num = ch_0_re_num - (2**num_bits) 
     ch_0_im_num = int(string[i+29] + string[i+26] + string[i+27], 16) 
     if ch_0_im_num > (2**(num_bits-1)): ch_0_im_num = ch_0_im_num - (2**num_bits) 
     ch_1_re_num = int(string[i+22] + string[i+23] + string[i+20], 16) 
     if ch_1_re_num > (2**(num_bits-1)): ch_1_re_num = ch_1_re_num - (2**num_bits) 
     ch_1_im_num = int(string[i+21] + string[i+18] + string[i+19], 16) 
     if ch_1_im_num > (2**(num_bits-1)): ch_1_im_num = ch_1_im_num - (2**num_bits) 
     if abs(ch_0_re_num) > 2045 or abs(ch_0_im_num) > 2045 or abs(ch_1_re_num) > 2045 or abs(ch_1_im_num) > 2045: overflow = True 
     ch_0_re.append(ch_0_re_num); ch_0_im.append(ch_0_im_num); ch_1_re.append(ch_1_re_num); ch_1_im.append(ch_1_im_num) 

     ch_0_re_num = int(string[i+14] + string[i+15] + string[i+12], 16) 
     if ch_0_re_num > (2**(num_bits-1)): ch_0_re_num = ch_0_re_num - (2**num_bits) 
     ch_0_im_num = int(string[i+13] + string[i+10] + string[i+11], 16) 
     if ch_0_im_num > (2**(num_bits-1)): ch_0_im_num = ch_0_im_num - (2**num_bits) 
     ch_1_re_num = int(string[i+6] + string[i+7] + string[i+4], 16) 
     if ch_1_re_num > (2**(num_bits-1)): ch_1_re_num = ch_1_re_num - (2**num_bits) 
     ch_1_im_num = int(string[i+5] + string[i+2] + string[i+3], 16) 
     if ch_1_im_num > (2**(num_bits-1)): ch_1_im_num = ch_1_im_num - (2**num_bits) 
     if abs(ch_0_re_num) > 2045 or abs(ch_0_im_num) > 2045 or abs(ch_1_re_num) > 2045 or abs(ch_1_im_num) > 2045: overflow = True 
     ch_0_re.append(ch_0_re_num); ch_0_im.append(ch_0_im_num); ch_1_re.append(ch_1_re_num); ch_1_im.append(ch_1_im_num) 

    if invert_arrays: 
     temp = ch_0_re 
     ch_0_re = ch_0_im 
     ch_0_im = temp 
     temp = ch_1_re 
     ch_1_re = ch_1_im 
     ch_1_im = temp 

    ch_0 = 0.0; ch_1 = 0.0 
    for i in range(len(ch_0_re)): 
     ch_0 += (ch_0_re[i]**2) + (ch_0_im[i]**2) 
     ch_1 += (ch_1_re[i]**2) + (ch_1_im[i]**2) 

    ch_0_pow = 10 * math.log10((ch_0/len(ch_0_re))/(2**22)) 
    ch_1_pow = 10 * math.log10((ch_1/len(ch_1_re))/(2**22)) 
    return [ch_0_pow, ch_1_pow, overflow] 

powers = parse_FFT_hex(hex_string) 
print powers 
pyplot.figure() 
pyplot.plot(powers[0], powers[1]) 

运行这给了我:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Users\salzda\AppData\Local\Continuum\Anaconda2\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 714, in runfile 
    execfile(filename, namespace) 
    File "C:\Users\salzda\AppData\Local\Continuum\Anaconda2\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 74, in execfile 
    exec(compile(scripttext, filename, 'exec'), glob, loc) 
    File "C:/Users/salzda/Documents/Python Scripts/untitled1.py", line 82, in <module> 
    pyplot.figure() 
    File "C:\Users\salzda\AppData\Local\Continuum\Anaconda2\lib\site-packages\matplotlib\pyplot.py", line 527, in figure 
    **kwargs) 
    File "C:\Users\salzda\AppData\Local\Continuum\Anaconda2\lib\site-packages\matplotlib\backends\backend_qt4agg.py", line 45, in new_figure_manager 
    thisFig = FigureClass(*args, **kwargs) 
    File "C:\Users\salzda\AppData\Local\Continuum\Anaconda2\lib\site-packages\matplotlib\figure.py", line 325, in __init__ 
    self.dpi = dpi 
    File "C:\Users\salzda\AppData\Local\Continuum\Anaconda2\lib\site-packages\matplotlib\figure.py", line 410, in _set_dpi 
    self.dpi_scale_trans.clear().scale(dpi, dpi) 
    File "C:\Users\salzda\AppData\Local\Continuum\Anaconda2\lib\site-packages\matplotlib\transforms.py", line 1965, in scale 
    np.float_) 
TypeError: 'list' object is not callable 

即使列表打印精细,给我的价值观我想,因为某种原因,它以后什么都不能做。

+0

在哪一行是错误?我在这里看不到matplotlib。 –

+0

什么是'pyplot.figure'?它是一种方法还是一个列表? – Will

+0

@将它的一个函数创建一个在 – dasalz1

回答

1

您的问题:

numpy.array = [] 

不要那样做。你正在将numpy.array变成一个列表。推测,删除该行并且你的代码将工作得很好。

+0

上绘图的数字哇,谢谢我甚至不知道我为什么在那里。 – dasalz1