hallo!Warum nehmen alle Zeilen meines 2d-Arrays den Wert, den ich an nur einen übergeben habe?
Ich versuche, den folgenden Code rekursiv auszuführen, wo "Vetor" der aktuelle Zustand mehrerer Variablen ist und ich die ersten 50 in "matriz" speichern, ein 2D-Array mit 50 Zeilen und 10 Spalten. Alles wird als Null initialisiert.
Was passiert ist, dass in der ersten Iteration die erste Zeile den Wert des aktuellen "Vetor" nimmt. So weit, so gut, aber dann in der zweiten Schleife wird der "vetor" -Wert sowohl der zweiten als auch der ersten Zeile von "matriz" zugewiesen. In der letzten Iteration zum Beispiel sind alle Zeilen von "matriz" gleich dem letzten Wert von "vetor".
-I-Studie Steuerungstechnik und vor allem Programm in C oder MATLAB, so bin ich ein bisschen Neuling in Python ...
Im Folgenden wird der Teil des Codes beschrieben, wo ich glaube, das Problem ist.
#armazena as variáveis do estado
vetor[0]=sc.get_ball_distance()
vetor[1]=sc.get_ball_angle()
vetor[2]=sc.get_target_angle()
vetor[3]=sc.get_obstacle_distance()
vetor[4]=sc.get_obstacle_angle()
vetor[5]=sc.get_spin()
vetor[6]=force_left_anterior
vetor[7]=force_right_anterior
vetor[8]=force_left
vetor[9]=force_right
#armazena o vetor de estado como linha na matriz
if cnt<50:
matriz[cnt]=vetor
cnt=cnt+1
Ich bin nicht sicher, ich sehe, was diesen Code rekursiv ist, weil es keine Funktionen definiert ist. Vielleicht könntest du versuchen, ein [mcve] mit einem [edit] zu deiner Frage zu zeigen? –
es sieht aus wie vetor ist schon was du willst. Warum nicht einfach einen Vetor kopieren? – Craicerjack
@Craicerjack, ich muss eigentlich die letzten 50 Werte von vetor speichern und dann in eine Datei schreiben. Die beste Option war es, sie in einer Liste zu speichern, die nur diejenigen enthält und die ersten verwirft. Nachdem ein bestimmtes Ereignis eingetreten ist, werden diese in "matriz" gespeicherten Werte in eine Datei geschrieben. –