当前位置: 首页 > news >正文

Eigen中的SparseMatrix(稀疏矩阵)元素的快速插入

Eigen中的SparseMatrix(稀疏矩阵)元素的快速插入 - 辰宸的备忘录 (licc.tech)

Eigen::SparseMatrix<float> m(3, 3);
std::vector<Eigen::Triplet<float> > triple;
for (int i = 0; i < 3; i ) {
    for (int j = 0; j < 3; j ) {
        triple.push_back(Eigen::Triplet<float>(i, j, 0.1));
    }
}
triple.push_back(Eigen::Triplet<float>(1, 1, 0.1));    //相同下标重复插入,则表示相加
m.setFromTriplets(triple.begin(), triple.end());

这段代码的作用是创建一个 3x3 的稀疏矩阵 m,并将其所有元素的值设置为 0.1。具体实现如下:

  1. 定义了一个名为 m 的稀疏矩阵,大小为 3x3,元素类型为 float。

  1. 定义了一个名为 triple 的 std::vector,用于存储矩阵 m 的非零元素。

  1. 使用两个 for 循环遍历矩阵 m 的所有元素,将其行、列索引和值封装成 Triplet 类型的对象,并加入到 triple 中。

  1. 在循环外部,再加入一个 Triplet 对象,其行列索引为 (1, 1),值为 0.1。由于该位置在上面的循环中已经被赋值为 0.1,因此这里实际上是将该位置的值加上了 0.1。

  1. 调用 m 的 setFromTriplets 方法,将 triple 中的元素设置为 m 的非零元素。最终,矩阵 m 的值为:0.1 0.1 0.1

0.1 0.2 0.1

0.1 0.1 0.1

相关文章:

  • 第十四届蓝桥杯三月真题刷题训练——第 21 天
  • JavaScript到底如何存储数据?
  • 结构体详解
  • 【数据结构与算法】设计循环队列
  • go语言gin框架学习
  • 一个超简单的渐变平行四边形进度条
  • 安装好unity后给unity配置及插件和资源相关的事情
  • docker版jxTMS使用指南:勾连python
  • 值得记忆的STL常用算法,分分钟摆脱容器调用的困境,以vector为例,其余容器写法类似
  • 重学Java设计模式-结构型模式-组合模式
  • Android11以上版本使用高德定位,定位成功,卫星数一直为0
  • 【十二天学java】day06之方法详解
  • Revit明细表计算重量和明细表导出功能
  • 基于飞桨实现的特定领域知识图谱融合方案:ERNIE-Gram文本匹配算法
  • Python实现二叉树递归遍历
  • 如何在 Vue 中使用 防抖 和 节流
  • 高效实施ClickHouse数据备份
  • 关于qt creator手动添加构建套件kit问题
  • 【进阶数据结构】——红黑树
  • 初识进程
  • 电加热油锅炉工作原理_电加热导油
  • 大型电蒸汽锅炉_工业电阻炉
  • 燃气蒸汽锅炉的分类_大连生物质蒸汽锅炉
  • 天津市维修锅炉_锅炉汽化处理方法
  • 蒸汽汽锅炉厂家_延安锅炉厂家
  • 山西热水锅炉厂家_酒店热水 锅炉
  • 蒸汽锅炉生产厂家_燃油蒸汽发生器
  • 燃煤锅炉烧热水_张家口 淘汰取缔燃煤锅炉
  • 生物质锅炉_炉
  • 锅炉天然气_天燃气热风炉