我需要使用特征库在C ++中创建一个对角线MatrixXd,其中对角线上的元素是较短的VectorXd的N复制。
VectorXd R; //大小为n的向量
VectorXd V; //一个大小为n * N的向量,对应于R的N个级联复制,我不知道如何创建
MatrixXd D = MatrixXd(V.asDiagonal()); //我的对角矩阵大小为n N x n N
感谢。
答案 0 :(得分:0)
的内容
VectorXd V(N * R.innerSize()); // construct vector of size N * n
for(size_t i = 0; i < n; ++i)
for(size_t j = 0; j < R.innerSize(); ++j)
V[i * R.innerSize() + j] = R[j];