Создайте 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() фактически не позволяет изменять размер."

Пожалуйста, помогите решить эту проблему.

0 ответов

Другие вопросы по тегам