【发布时间】:2017-05-16 10:45:40
【问题描述】:
我有一个向量说我想用它来形成一个对角矩阵的向量 如下
double shapes=[2,3,4,5];
Vector2d temp;
std::vector<Eigen::DiagonalMatrix<double, 2> > diavector;
diavector.resize(4);
for(int i=0;i<4;i++){
temp<<shapes[i],shapes[i];
diavector[i]=temp.asDiagonal();
cout<<diavector[i].toDenseMatrix()<<endl;
}
我现在有一个更大的矩阵说
Eigen::MatrixXd N(2,12);
N.setZero(2,12);
我现在想根据预先分配的列表将 diavector 的元素放置到 N 矩阵的合适位置。例如,如果
double listIndices={0,2,3,5}
给出块所在向量的位置 必须插入矩阵才能得到一个矩阵 N 像
N=[2 0 0 0 3 0 4 0 0 0 5 0
0 2 0 0 0 3 0 4 0 0 0 5]
怎么办呢。
【问题讨论】: