【发布时间】:2017-04-21 01:23:26
【问题描述】:
在 eigen 中,我们可以使用其他一些矩阵或向量来初始化一个矩阵或向量,如下所示:
MatrixXf matA(2, 2);
matA << 1, 2, 3, 4;
MatrixXf matB(4, 4);
matB << matA, matA/10, matA/10, matA;
std::cout << matB << std::endl;
我想要达到的目标:
SparseMatrix<double> matA(2, 2);
matA.coeffRef(0, 0) = 1;
matA.coeffRef(1, 1) = 1;
SparseMatrix<double> matB(4, 4);
matB << matA, matA/10, matA/10, matA;
std::cout << matB << std::endl;
然后我得到一个这样的矩阵:
1 0 0.1 0
0 1 0 0.1
0.1 0 1 0
0 0.1 0 0.1
但是,它不适用于稀疏矩阵, 那么 eigen 有这样的内置初始化程序吗?或者我需要自己写,如果是这样?怎么样?
【问题讨论】:
-
作为记录,我已经填写了一个功能请求:eigen.tuxfamily.org/bz/show_bug.cgi?id=1420。这绝对是一个有用的功能。
标签: c++ sparse-matrix eigen