从VectorXds创建MatrixXd

时间:2018-01-12 17:43:05

标签: c++ eigen

我需要创建一个MatrixXd,将多个VectorXds组合为列。我不知道编译时向量中的行数(这里我使用10作为大小来显示我的问题)

我提到herehere我有以下代码

VectorXd vectOne= VectorXd(10);
VectorXd vectTwo = VectorXd(10);
VectorXd vectThree = VectorXd(10);

for (int i = 0; i < 10; i++) {
        vectOne(i, 0) = i*2;
        vectTwo(i, 0) = i*3;
        vectThree(i, 0) = i*4;
}

        MatrixXd m(10, 3);

//method 1 - FAILED
        m.col(0) = vectOne;
        m.col(1) = vectTwo;
        m.col(2) = vectThree;

//method 2 -FAILED
        m<< vectOne, vectTwo, vectThree;

两者都不起作用。我得到如下错误。

方法1错误:断言失败:startRow&gt; = 0&amp;&amp; blockRows&gt; = 0&amp;&amp; startRow&lt; = xpr.rows() - blockRows&amp;&amp; startCol&gt; = 0&amp;&amp; blockCols&gt; = 0&amp;&amp; startCol&lt; = xpr.cols() - blockCols

方法2错误:断言失败:行== this-&gt; rows()&amp;&amp; cols == this-&gt; cols()&amp;&amp; &#34; DenseBase :: resize()实际上不允许调整大小。&#34;

请帮助解决这个问题。

0 个答案:

没有答案