使用极坐标绘制矩阵笛卡尔坐标

时间:2015-07-21 11:37:39

标签: python python-2.7 numpy python-2.x

我知道极坐标中的矩阵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的方法吗?

0 个答案:

没有答案