Eigen3 教程基础篇(二)

参考

Eigen3 主页,Eigen3 官网教程

矩阵的本质,通过多种矩阵的应用去感受矩阵本质

3Blue1Brown 的线性代数,用可视化方法来表现线性代数的特性,强推

如何理解复数和虚数,有动画方便理解复数的意义

相关文章

Eigen3 教程基础篇(一)

Eigen3 教程基础篇(三)

Eigen3 基础数据类型和操作

矩阵的核心是向量和线性代数,而线性代数的核心是向量加法和标量乘法。

Vector 向量类

向量类是列或行只有 1 的特殊矩阵,Vector 类是列向量,RowVector 类是行向量。

预定义好的向量模板

和矩阵类似,向量也有预定义好的模板:

VectorNt 格式:N 大小的列向量,例如 Vector2fMatrix<float, 2, 1>

RowVectorNt 格式:N 大小的行向量,例如 RowVector3dMatrix<double, 1, 3>

维数大小 N ∈ {2,3,4,X}。

数据类型 t ∈ {i,f,d,cf,cd}。分别是 int ,float,double,complex<float>(复数),complex<double>(复数)。

向量初始化和系数读写

void TestVector()
{
  setlocale(LC_ALL, "zh_CN.UTF-8"); // 支持 ros 打印中文

  Eigen::Vector3i v(3, 6, 9);
  ROS_INFO_STREAM("列向量3i v 构造初始化指定了系数和行数:" << std::endl << v);

  //! 固定向量类不支持 << 赋值,会导致段错误,但是动态向量类支持。
  Eigen::RowVectorXf u(5);
  u << 1.2, 2.3, 3.4, 4.5, 5.6;
  ROS_INFO_STREAM("动态行向量 u 默认初始化:" << std::endl << u);

  Eigen::VectorXd w(5);
  w.Random(5);
  ROS_INFO_STREAM("列向量 w 随机赋值:" << std::endl << w);
  ROS_INFO_STREAM("列向量[]访问 w[2]:" << std::endl << w[2]);
  w[2] = 12.34;
  ROS_INFO_STREAM("列向量[]修改 w[2]:" << std::endl << w[2]);

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值