【发布时间】:2016-02-01 06:48:21
【问题描述】:
Block operations for sparse matrices - Eigen Toolbox - C++
#include "Eigen/Dense"
#include "Eigen/Sparse"
#include <iostream>
using namespace std;
using namespace Eigen;
int main()
{
MatrixXd silly(6, 3);
silly << 0, 1, 2,
0, 3, 0,
2, 0, 0,
3, 2, 1,
0, 1, 0,
2, 0, 0;
SparseMatrix<double> sparse_silly,temp;
sparse_silly= Eigen::SparseMatrix<double>(6, 3);
temp = Eigen::SparseMatrix<double>(6, 3);
sparse_silly = silly.sparseView();
std::cout << "Whole Matrix" << std::endl;
std::cout << sparse_silly << std::endl;
temp.block(0, 0, 2, 2)=sparse_silly.block(0, 0, 2, 2);
std::cout << "block of matrix" << std::endl;
std::cout << temp.block(0, 0, 2, 2) << std::endl;
getchar();
return 0;
}
在上面的代码中,稀疏矩阵的块操作在使用 Eigen 工具箱时不起作用。我想将 sparse_silly 中的一个块分配给临时矩阵中的一个块。临时矩阵的打印输出为零。如果我在概念上遗漏了什么,谁能帮助我。最近的文档说块操作可用于稀疏矩阵。
【问题讨论】:
标签: c++ sparse-matrix eigen