gpt4 book ai didi

c++ - 创建矩阵?

转载 作者:太空宇宙 更新时间:2023-11-04 15:34:49 34 4
gpt4 key购买 nike

我正在尝试使用 Eigen::Matrix3d 创建一个旋转矩阵,但似乎无法准确地做到这一点..

void rot(double x,double y,double z)
{

Eigen::Matrix3d x_r ((double)1,(double)0,(double)0,
(double)0,cos(x),-sin(x),
(double)0,sin(x),cos(x));

Eigen::Matrix3d y_r (cos(y),(double)0,sin(y),
(double)0,(double)1,(double)0,
-sin(y),(double)0,cos(y));

Eigen::Matrix3d z_r (cos(z),-sin(z),(double)0,
sin(z),cos(z),(double)0,
(double)0,(double)0,(double)1) ;

Eigen::Matrix3d rot = z_r*y_r*x_r;

}

由于某些奇怪的原因,我无法将 x_r、y_r、z_r 装入箱子?..有人可以详细说明我做错了什么吗?

我收到的错误信息是:

error: no matching function for call to 'Eigen::Matrix<double, 3, 3>::Matrix(double, double, double, double, double, double, double, double, double)'

首先我以为我是因为我使用了 doubleint 的组合,这就是我首先对其进行类型转换的原因..

最佳答案

尝试

Eigen::Matrix3d x_r;
Eigen::Matrix3d y_r;
Eigen::Matrix3d z_r;

x_r << 1.0, 0.0, 0.0,
0.0, cos(x), -sin(x),
0.0 ,sin(x), cos(x);

y_r << cos(y), 0.0, sin(y),
0.0, 1.0, 0.0,
-sin(y), 0.0, cos(y);

z_r << cos(z), -sin(z), 0.0,
sin(z), cos(z), 0.0,
0.0, 0.0, 1.0;

Eigen::Matrix3d rot = z_r*y_r*x_r;

似乎没有您尝试使用的 Eigen::Matrix3d 的构造函数:直接初始化值的构造函数。

关于c++ - 创建矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36826007/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com