我正在尝试进行具有矩阵的双重集成。当我运行它时,它不会显示任何结果。它也没有显示任何错误。它只是无休止地运行而没有任何输出。我不认为无限循环可能是问题,因为我正在使用'。是因为有四个' 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()
任何帮助或建议将不胜感激。谢谢!
答案 0 :(得分:1)
for循环的四重将运行1024 * 90 * 360 * 1024 =总共约340亿次迭代。这可能需要一段时间才能完成;)
此外,您在所提供的代码中没有任何输出说明,因此无论如何都不应该提供任何输出。
答案 1 :(得分:0)
是。内循环应该执行33.9亿次。