对角线MatrixXd与VectorXd的连续重复

时间:2014-10-02 17:03:43

标签: c++ eigen3

我需要使用特征库在C ++中创建一个对角线MatrixXd,其中对角线上的元素是较短的VectorXd的N复制。

VectorXd R; //大小为n的向量

VectorXd V; //一个大小为n * N的向量,对应于R的N个级联复制,我不知道如何创建

MatrixXd D = MatrixXd(V.asDiagonal()); //我的对角矩阵大小为n N x n N

感谢。

1 个答案:

答案 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];