我知道极坐标中的矩阵f [r,phi]。我想用笛卡尔坐标绘制它。以下是我的代码:
import numpy as np
import math
f = np.zeros((1024,90)) #In polar co-ordinate
D = 0.28 #Source to isocenter distance
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(1,726) :
for y in range(1,726) :
r = math.pow(x,2)+math.pow(y,2)
phi = math.degrees(math.atan(y/x))
I[x,y] = f[r,phi]
这里极坐标r从(0,1024)和(0,90)的phi变化。但我已经应用了一个文件管理器'h',这是一个斜坡过滤器。所以最后的f并不完全具有1024 * 90个元素。我想用笛卡尔坐标绘制图像f,并将尺寸设置为(725,725),这是灵活的。但是我收到以下错误。
I[x,y] = f[r,phi]
IndexError: index (1025) out of range (0<=index<1024) in dimension 0
有人可以建议我用笛卡尔坐标绘制函数f的方法吗?