Создайте MatrixXd из VectorXds
Мне нужно создать 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 >= 0 && blockRows >= 0 && startRow <= xpr.rows() - blockRows && startCol >= 0 && blockCols >= 0 && startCol <= xpr.cols() - blockCols
Ошибка метода 2: утверждение не выполнено: row == this-> columns() && cols == this->cols() && "DenseBase::resize() фактически не позволяет изменять размер."
Пожалуйста, помогите решить эту проблему.