我需要创建一个MatrixXd,将多个VectorXds组合为列。我不知道编译时向量中的行数(这里我使用10
作为大小来显示我的问题)
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;
请帮助解决这个问题。