为什么我的2d数组的所有行只接受我传递给其中一行的值?

2021-06-13 13:20:32 发布

您现在位置:Python中文网/ 问答频道 /正文

你好!你知道吗

我尝试递归地运行以下代码,其中“vetor”是几个变量的当前状态,我将前50个存储在“matriz”中,这是一个包含50行和10列的二维数组。一切都初始化为零。你知道吗

在第一次迭代中,第一行取当前“vetor”的值。到目前为止还不错,但是在第二个循环中,“vetor”值被分配给“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