如何解决如何在 Eigen 中的函数之间传递稀疏矩阵作为参考
想知道如何在 Eigen 中的函数之间传递稀疏矩阵。我一直在使用密集矩阵,如下所示。 K 的大小可以在 2000 到 10000 之间的任何位置。但是矩阵 K 的非零元素少于 1%。因此,在这种情况下,稀疏矩阵会更有效。我找到了一个关于创建基于模板的函数的例子,但我很难理解在这种情况下如何编写这样的函数。还有一种方法可以添加向量 M 而不将其转换为对角线。 M是单位值的向量。
#include "Eigen/Core"
#include "Eigen/LU"
#include "Eigen/Sparse"
using namespace std;
using namespace Eigen;
void FuncA (Eigen::MatrixXd& K,Eigen::VectorXd& M,int rows,double D,double perM,Eigen::MatrixXd& retMat)
{
int i,j,k;
Eigen::MatrixXd mMat(rows,rows);
mMat.setZero();
mMat = M.asDiagonal();
retMat.setZero();
retMat = K + (K*D) + mMat/perM;
mMat.resize(0,0);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。