Problem mit unerwünschter Modifikation von Variablen
Verfasst: Montag 14. April 2008, 10:56
Hall erstmal, ich bin neu in diesem Forum und auch noch Anfänger in der Programmierung von Python. Ich habe ein Problem mit der Funktion die ich unten aufgeführt habe. Die Funktion soll die Position des Maximums eines 2-spaltigen arrays bestimmen. Dieses liegt zwischen den zwei höchsten Werten und kann mittels eines kleinen Mathematischen Tricks bestimmt werden. Meine Formel geht davon aus, dass der dritte Punkt höher liegt als der erste. Tut er das nicht, vertausche ich diese beiden Punkte in einer loaklen Varieblen.
Das Problem ist, dass dann auch die globale Variable (die in der Funktion dann data heißt) verändert wird.
Kann mir jemand erklären wieso das passiert und wie man das verhindern kann.
Schonmal danke für eure Antworten.
Das Problem ist, dass dann auch die globale Variable (die in der Funktion dann data heißt) verändert wird.
Kann mir jemand erklären wieso das passiert und wie man das verhindern kann.
Schonmal danke für eure Antworten.
Code: Alles auswählen
def peakguesser(data):
point=zeros((3,2),type=Float)
max=(0.0,0.0)
maxpos=0
for i in range(len(data)):
if max[1]<data[i,1]:
max=data[i]
maxpos=i
maxpos+=-1
point=data[maxpos:maxpos+3]
if point[2,1]>point[0,1]:
interstore=point[0]
point[0]=point[2]
point[2]=interstore
xintercept=point[2,0]-((point[2,0]-point[1,0])/(point[2,1]-point[1,1])*(point[2,1]-point[0,1]))
return (xintercept+point[0,0])/2