python - Python 矩阵类型
问题描述
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'>
为什么矩阵输出总是在开始矩阵中包含一个“列表”,如何将它们转换为浮点数,我可以制作一个简单的矩阵相乘。
解决方案
我不确定为什么这些是列表,但我认为你更大的问题是你试图让 wat 看起来像一个 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 来调整角度。
这比写那些令人头疼的行要好得多:)
推荐阅读
- javascript - React js - this.state 中的 API 响应是空对象
- ruby-on-rails - 如何使用 NPM、Webpacker 和 Rails 安装 Quill dev 2.0?
- android - Android Studio:缺少 Android 支持存储库
- json - 尝试使用 Devart dotConnect for Quickbooks 创建 Quickbooks 在线日记条目
- ms-access - 我试图在访问中的表达式生成器中执行“和”表达式,但它不起作用
- flutter - What is the functionality of .dart_tool folder in a Flutter application?
- r - 如何在不丢失原始变量的情况下离散化数值变量?
- makefile - 如何在 Makefile 的变量中运行命令?
- reactjs - 在没有 Javascript 的情况下反应路由
- python - 我有两个本地磁盘,我的 python 外部模块安装在我不使用的磁盘中