копировать boost :: numeric :: ublas :: матричный ряд к вектору векторов

0
  • Я пытаюсь скопировать строки матрицы в вектор векторов, как я могу применить его?
  • Можно ли преобразовать матрицу форсирования в вектор векторов?

исходный код:

#include <iostream.h>
#include <boost/numeric/ublas/matrix.hpp>
#include <vector>

int main()
{
    //declare vector and matrix
    std::vector<std::vector<float>> document;
    boost::numeric::ublas::matrix<float> data(10,10);
    // fill matrix (any numbers)
    for (size_t i = 0; i < data.size1(); i++)
    {
        for (size_t j = 0; j < data.size2(); j++)
        {
            data(i,j) = i + j ;
        }
    }

    //The problem is here. I want to copy data(j) to document i.e document.push_back(data(j)). How can I copy matrix rows to a vector?
  //I know that it wrong: document.push_back(data(j)) but that almost what i am trying to do

//matrix_row<matrix<double> > mr (m, i); allows me to access a row right?

return 0;

}
Теги:
vector
matrix
boost

1 ответ

3
Лучший ответ

Вы не можете назначить matrix_row vector, ему нужно некоторое преобразование:

for(size_t i = 0; i < data.size1(); ++i)
{
    std::vector<float> row(data.size2());
    boost::numeric::ublas::matrix_row<boost::numeric::ublas::matrix<float> > mr (data, i); 

    std::copy(mr.begin(), mr.end(), row.begin());
    document.push_back(row);
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню