0

統合を行うためのコードを書いています。しかし、私はある時点で立ち往生しています(最後の2行)。それが言うように、インデックス エラー: インデックスが範囲外です。私がやりたいことは、rが値を持つたびに、対応する空のインデックスに1の増分として書き込む必要があるため、それを追跡できるようにすることです。どんな助けでも大歓迎です。ここにコードがあります-

from pylab import*
from math import*

dx = 981
dy = 1043
bx = 534.4
by = 109.5

index = zeros(shape=(1,dx+dy))
r=0
r_max=0

for i in xrange(1,dy+1):
    for j in xrange (1,dx+1):
        if i-by > 0:
            theta = 180*atan(abs(j-bx)/(i-by))/pi
            if theta<10:
                r = round(sqrt((j-bx)**2+(i-by)**2))
                if r>0:
                    index[r]+=1
4

1 に答える 1

2

index = zeros(shape=(1,dx+dy))サイズ1の最初の軸を使用して、2次元配列を作成します。アレイの最初index[r]+=1の軸にアクセスすると、インデックスrが> 1になります。

したがって、あなたが望むのは、最初の「役に立たない」次元を取り除くことです。

index = zeros(shape=(dx+dy))

または、代わりに、2 番目の軸にインデックスを付けます。

index[0, r]+=1

または、

index[:, r]+=1
于 2013-04-12T08:02:43.243 に答える