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 = 32, aber ändern kann ich es
Mit einem 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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meine Vermutung ist, dass das array
field_in_k_space_REAL
ist eigentlich der Länge 0, die meisten wahrscheinlich, weil Sien = 0
weiter oben im code (verwenden Sien
in einer Schleife vielleicht?). Ich kann den Fehler reproduzieren, wenn ich direkt initialisiert ein array mit der Länge 0.InformationsquelleAutor James Kelleher
in der Tat, würden Sie besser verwenden:
statt:
InformationsquelleAutor Jan Smash