[英]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
時得到的值。
總結:
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.