簡體   English   中英

減去兩個列表,但 Python 中的值沒有相加

[英]Subtracting two lists but the values are not adding up in Python

我要執行操作: roll_all-theta_all 它們都是包含兩個值的lists ,結果應該列在我的panda.DataFrame上名為“roll”的列中。 但是,當我這樣做時,'roll' 列的第二行值不會相加。 盡管由於我在代碼的其他部分執行theta_all操作而看不到它,但我獲取值的方式與獲取roll_all的值相同,即通過創建一個空list然后 append 將值分配給它。 這是我的代碼:

pyr = pd.DataFrame(columns = ['pitch','yaw','roll'])

for para in GTparas:  
    Mr = np.array([[np.cos(para[2]), -np.sin(para[2]), 0],[np.sin(para[2]), np.cos(para[2]), 0],[0, 0, 1]])
    My = np.array([[np.cos(para[1]), 0, np.sin(para[1])],[0, 1, 0],[-np.sin(para[1]), 0, np.cos(para[1])]])
    Mp = np.array([[1, 0, 0],[0, np.cos(para[0]), -np.sin(para[0])],[0, np.sin(para[0]), np.cos(para[0])]])
    M1 = np.dot(Mr,My)
    M = np.dot(M1,Mp)

    pitch = np.arctan(M[2,1]/M[2,2])
    yaw = np.arctan(M[2,0]/((((M[0,0])**2)+((M[1,0])**2))**(1/2)))
    roll = np.arctan(M[1,0]/M[0,0])
    
    roll_all = []
    roll_all.append(roll)
    print(roll_all)
    c = [a - b for a, b in zip(roll_all, theta_all)]
    #c = np.array(roll_all) - np.array(theta_all)
  
    pyr = pyr.append({'pitch':pitch,'yaw':yaw,'roll':c},ignore_index = True) # from Z-Y-X to X-Y-Z
print(pyr)

我還在我的列表中附加了theta_all的值,第二張圖片顯示了roll_all中的值以及我打印pyr時得到的值。

theta_all 的值 theta_all 和 pyr 的值

總結:

pyr = pd.DataFrame(columns = ['pitch','yaw','roll'])

for para,theta in zip(GTparas, theta_all):
    Mr = np.array([[np.cos(para[2]), -np.sin(para[2]), 0],[np.sin(para[2]), np.cos(para[2]), 0],[0, 0, 1]])
    My = np.array([[np.cos(para[1]), 0, np.sin(para[1])],[0, 1, 0],[-np.sin(para[1]), 0, np.cos(para[1])]])
    Mp = np.array([[1, 0, 0],[0, np.cos(para[0]), -np.sin(para[0])],[0, np.sin(para[0]), np.cos(para[0])]])
    M1 = np.dot(Mr,My)
    M = np.dot(M1,Mp)

    pitch = np.arctan(M[2,1]/M[2,2])
    yaw = np.arctan(M[2,0]/((((M[0,0])**2)+((M[1,0])**2))**(1/2)))
    roll = np.arctan(M[1,0]/M[0,0]) - theta
      
    pyr = pyr.append({'pitch':pitch,'yaw':yaw,'roll':roll},ignore_index = True) 

print(pyr)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM