你好!为什么我的二维数组的所有行都只有我传给它们中的一个的值?
我试图递归运行下面的代码,其中“vetor”是几个变量的当前状态,我将第一个50存储在“matriz”,一个具有50行和10列的2d数组中。一切都初始化为零。
会发生什么是在第一次迭代中,第一行取当前“vetor”的值。到目前为止很好,但在第二个循环中,“vetor”值被分配给第二个AND“matriz”的第一行。例如,在最后一次迭代中,“matriz”的所有行等于“vetor”的最后一个值。
我学习控制工程和主要程序在C或MATLAB,所以我有点新手在Python ...
下面的代码部分说明,在这里我相信这个问题是。
#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
我不知道我看到什么是递归的这个代码,因为没有定义的功能。也许你可以尝试用[编辑]来展示你的问题[mcve]? –
它看起来像vetor已经是你想要的。为什么不只是复制vetor? – Craicerjack
@Craicerjack,我实际上需要存储vetor的最后50个值,然后将它们写入文件。最好的选择是将它们存储在仅保留那些列表并丢弃第一个列表的列表中。发生特定事件后,存储在“matriz”中的值将被写入文件。 –