gpt4 book ai didi

c++ - Eigen - 将每个(稀疏)矩阵行除以其对应的对角线元素

转载 作者:行者123 更新时间:2023-11-30 02:46:02 26 4
gpt4 key购买 nike

使用 C++ 中的 Eigen 库,给定一个稀疏矩阵 A,计算稀疏矩阵 B 的最有效方法是什么(按行操作?如何?) code> 这样 B(i, j) = A(i, j)/A(i, i) ?即,将每一行i除以对应的对角线元素A(i, i)。了解如何就地(替换 A 中的条目)和异地(创建新的稀疏矩阵 B)会很有帮助。

我的稀疏矩阵定义为:

typedef double Real;
typedef Eigen::SparseMatrix<Real> SparseMatrixR;

谢谢你,
米。

最佳答案

换句话说,您想提取 A 的对角线,将其视为对角矩阵,并将其逆矩阵应用于 A:

A = A.diagonal().asDiagonal().inverse() * A;

如果 A 是 rowmajor,这个操作应该稍微更有效率。

关于c++ - Eigen - 将每个(稀疏)矩阵行除以其对应的对角线元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23911194/

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