Ich lese aus einer Text Datei (zunächst noch eine Liste) Koordinaten ein.
Jede Zeile steht für 3Punkte; die ersten drei pos. für x/y/z Werte; pos. 4. für Interaktionsenergie.
Ich möchte auf die oeinzelnen Werte zugreifen(die Summe von jew. der Interaktion einer Reihe bilden ;also jew. Pos 4).
Im nächsten Schritt will ich die Distanzen zwischen den Punkten berechnen (als Euklid Dist.).
Nur kann ich leider nicht auf die einzelnen Elemente zugreifen.
Liste nach einlesen:
[
Code: Alles auswählen
'([-0.068, 2.650, 53.140, 12.990], [-0.392, -4.350, 52.140, 11.990], [-0.678, 0.650, 54.140, 9.990])', '([-0.068, 2.650, 53.140, 12.990], [-0.392, -4.350, 52.140, 11.990], [-0.748, 0.650, 52.140, 11.990])', '([-0.068, 2.650, 53.140, 12.990], [-0.678, 0.650, 54.140, 9.990], [-0.748, 0.650, 52.140, 11.990])', '([-0.392, -4.350, 52.140, 11.990], [-0.678, 0.650, 54.140, 9.990], [-0.748, 0.650, 52.140, 11.990])']
Code: Alles auswählen
def euklid(new):
laenge=len(new)
print laenge, "moegliche Kombinationen" #Items der Liste
print new
for i in new:
print i
print "\n"
#content = matrix(i) #jeder 3er array -> matrix
content =array(i)
print content
print "\n"
A= content[:,3]
print A
##summe_energie = sum(content)
##print summe_energie
##print "\n"
Code: Alles auswählen
Traceback (most recent call last):
File "oneforall1611a.py", line 185, in <module>
new_vector = euklid(new)
File "oneforall1611a.py", line 104, in euklid
A= content[:,3]
IndexError: 0-d arrays can only use a single () or a list of newaxes (and a single ...) as an index
Code: Alles auswählen
([-0.392, -4.350, 52.140, 11.990], [-0.678, 0.650, 54.140, 9.990], [-0.748, 0.650, 52.140, 11.990])
(Wieviel dimensional ist mein Array eigentlich?)
Wenn ich das ganze als Matrixvariante durchführe:
item vor Matrix Umwandlung:
Code: Alles auswählen
([-0.068, 2.650, 53.140, 12.990], [-0.392, -4.350, 52.140, 11.990], [-0.748, 0.650, 52.140, 11.990])
Code: Alles auswählen
[[ -0.392 -4.35 52.14 11.99 -0.678 0.65 54.14 9.99 -0.748
0.65 52.14 11.99 ]]
Hoffe, es kann mir jemand helfen!
Besten Dank!