index 0 ist außerhalb des gültigen Bereichs für Achse 0 mit Größe 0

Ich bin Befüllen zwei arrays field_in_k_space_REAL und field_in_k_space_IMAGINARY mit Werten extrahiert aus einer Gauß-Verteilung, wobei die Aufmerksamkeit auf die Achtung der Symmetrie zu erhalten ein real-Feld, wenn ich die inverse-transform des arrays. Hier ist der code:

field_in_k_space_REAL = zeros(n, float)
field_in_k_space_IMAGINARY = zeros(n, float)

field_in_k_space_REAL[0] = 0.0

for i in range(1, int(n/2+1)):
    field_in_k_space_REAL[i] = np.random.normal(mu, math.sqrt((1/2)*math.exp(-(2*math.pi*i*sigma/L)*(2*math.pi*i*sigma/L))))

x = range(int(n/2+1), int(n))
y = range(1, int(n/2))
zipped = zip(x, y)

for j, j2 in zipped:
    field_in_k_space_REAL[j] = field_in_k_space_REAL[j-2*j2]

field_in_k_space_IMAGINARY[0] = 0.0

for i in range(1, int(n/2)):
    field_in_k_space_IMAGINARY[i] = np.random.normal(mu, math.sqrt((1/2)*math.exp(-(2*math.pi*i*sigma/L)*(2*math.pi*i*sigma/L))))

field_in_k_space_IMAGINARY[n/2] = 0.0

for j, j2 in zipped:
    field_in_k_space_IMAGINARY[j] = - field_in_k_space_IMAGINARY[j-2*j2]

print 'field_k', field_in_k_space_REAL

Aber ich muss immer wieder die folgende Fehlermeldung:

 field_in_k_space_REAL[0] = 0.0
IndexError: index 0 is out of bounds for axis 0 with size 0

Kann mir jemand erklären, warum und wie es zu lösen ist?

Was ist der Wert von n?
n = 32, aber ändern kann ich es
Mit einem Wert von n = 32 ich bin nicht in der Lage, den Fehler zu reproduzieren, die Sie zeigten.

InformationsquelleAutor johnhenry | 2015-03-23

Schreibe einen Kommentar