如何解决如何申报征稀疏矩阵向量
要在 Eigen 中声明稠密矩阵的向量,我使用以下格式
std::vector<Eigen::MatrixXd> AMAT(idx,Eigen::MatrixXd::Zero(1000,1000));
其中IDX是矢量的大小。是否有一个等效声明来定义一个稀疏矩阵?我目前声明一个稀疏矩阵
Eigen::SparseMatrix<double> BMAT(1000,1000);
这将是对我定义这种矩阵的向量,而不是为每个索引分别声明稀疏矩阵更有效。任何帮助表示赞赏。
解决方法
看到您希望向量中的矩阵具有不同的大小,您可能不应该对 std::vector
使用该初始化构造函数。
相反,只需逐个元素构建向量:
#include <Eigen/Sparse>
#include <vector>
#include <algorithm>
int main() {
auto sizes = { 100,200,300 };
std::vector<Eigen::SparseMatrix<double>> BMATvec;
BMATvec.reserve(sizes.size());
std::transform(cbegin(sizes),cend(sizes),back_inserter(BMATvec),[](auto size) { return Eigen::SparseMatrix<double>(size,size);});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。