在Eigen中编辑稀疏矩阵的对角线的最快方法是什么?我已经使用三胞胎将其填充,但是偶尔需要更改所有对角线值(它们已经设置为非零)。

最佳答案

如果可以接受,您可以简单地使用它们的索引,例如

sp_mat(i, i)

由于每次访问都涉及二进制搜索,因此可能无法满足性能。在这种情况下,您仍然可以在某些限制下获得更好的性能。
  • 您无需更改矩阵的基础布局,例如添加/删除nnz,压缩;
  • 您将反复访问对角线。

  • 有了这些限制,您可以存储对角线组件的指针,以便以后可以在O(1)时间访问数据。你可以得到与
    &sp_mat(i, i)
    

    关于sparse-matrix - Eigen -稀疏矩阵的对角线更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38474242/

    10-09 06:34
    查看更多