无限的Python程序,不显示结果或错误

时间:2015-07-21 08:52:41

标签: python python-2.7 for-loop

我正在尝试进行具有矩阵的双重集成。当我运行它时,它不会显示任何结果。它也没有显示任何错误。它只是无休止地运行而没有任何输出。我不认为无限循环可能是问题,因为我正在使用'。是因为有四个' for'循环和系统无法做到这一点?以下是我的代码:

    f = np.zeros((1024,90))  

    D = 0.28                
    h = np.zeros(1024)
    h[0:512] = np.linspace(0,1,512)
    h[513:] = np.linspace(1,0,511) 

    for r in range(0,1024) :
      for phi in range(0,90) :
        for b in range(0,360) :
          for s in range(0,1024) :
            U = (D + r*sin(b-phi))/D
            l = math.pow(U,-2)
            k = D/(math.pow((math.pow(D,2)+math.pow(s,2)),0.5))   
            f[r,phi] = 0.5*l*k*q[s,b]*h[s]

    I =np.zeros((725,725))

    for x in range(0,725) :
      for y in range(0,725) :
        r = math.pow(x,2)+math.pow(y,2)
        phi = math.degrees(math.atan(y/x))
        I[x,y] = f[r,phi]

    I8 = (((I - I.min()) / (I.max() - I.min())) * 255.9).astype(np.uint8)
    img = Image.fromarray(I8)
    img.save("Fanbeamreconstruction.png")
    im = Image.open("Fanbeamreconstruction.png")
    im.show()

任何帮助或建议将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:1)

for循环的四重将运行1024 * 90 * 360 * 1024 =总共约340亿次迭代。这可能需要一段时间才能完成;)

此外,您在所提供的代码中没有任何输出说明,因此无论如何都不应该提供任何输出。

答案 1 :(得分:0)

是。内循环应该执行33.9亿次。