coordinate_1 = np.array([[(np.cos(0) * np.cos(alpha_radian), np.cos(0) * np.sin(alpha_radian) * np.sin( alpha_radian) - np.sin(0) * np.cos(alpha_radian), np.cos(0) * np.sin(alpha_radian) * np.cos(alpha_radian))], [np.sin(0) * np.cos(alpha_radian), (np.sin(0) * np.sin(alpha_radian) * np.sin( alpha_radian)) - ( np.cos(0) * np.cos(alpha_radian)), (np.sin(0) * np.sin(alpha_radian) * np.cos( alpha_radian)) - ( np.cos(0) * np.sin(alpha_radian))], [-np.sin(alpha_radian), np.cos(alpha_radian) * np.sin(alpha_radian), np.cos(alpha_radian) * np.cos(alpha_radian)]])print(coordinate_1)print(type(coordinate_1))并輸出[list([(0.7071067811865476, 0.4999999999999999, 0.5)])list([0.0, -0.7071067811865476, -0.7071067811865475])list([-0.7071067811865475, 0.5, 0.5000000000000001])]<class 'numpy.ndarray'>為什么矩陣輸出總是在開始矩陣處包含一個“列表” ,如何將它們轉換為浮點數,我可以進行一個簡單的矩陣乘法。
1 回答

小唯快跑啊
TA貢獻1863條經驗 獲得超2個贊
我不確定為什么這些是列表,但我認為你更大的問題是你試圖強加看起來像 3d 旋轉的元素,對嗎?
如果是這樣,請不要使用當前的實現,而是使用 scipy.spatial.transform.Rotation`。
那里的例子:
from scipy.spatial.transform import Rotation as R r = R.from_euler('xyz', angles=[-45, 45, 0], degrees=True) r.as_matrix()
這輸出:
array([[ 7.07106781e-01, -5.00000000e-01, 5.00000000e-01], [-5.55111512e-17, 7.07106781e-01, 7.07106781e-01], [-7.07106781e-01, -5.00000000e-01, 5.00000000e-01]])
這和你的很相似。只需根據您使用的 alpha_radians 來調整角度即可。
這比寫那些令人頭痛的行要好得多:)
添加回答
舉報
0/150
提交
取消