как добавить матрицу в конец другой матрицы? (с использованием Boost Libraries в C ++) - PullRequest
1 голос
/ 14 июля 2010

У меня есть это:

  using namespace boost::numeric::ublas;
    matrix<double> m (3, 2);

    int k = 0;
    for (int j = 0; j < m.size1 (); j++) {
        for (int i = 0; i < m.size2 (); i++)
            m (j, i) = k++;
    }

   m =
     0 1 
     2 3
     4 5

И мне нужно добавить еще одну матрицу m2 к m

 matrix<double> m2 (3, 1);
k = 0;
for (int i = 0; i < m2.size2 (); i++)
    m (i, 0) = k++;

m2 = 
  0
  1
  2

Итак, что мне нужно сделать, чтобы это

  m =
         0 1 0
         2 3 1 
         4 5 2

Где я могу найти больше информации о подобных операциях? Я спрашиваю, потому что информация о http://www.boost.org/doc/libs/1_43_0/libs/numeric/ublas/doc/index.htm больше похожа на API, и до сих пор она не была настолько полезной.

1 Ответ

2 голосов
/ 14 июля 2010

Ну, это не элегантно, но это моя первая попытка:

m.resize(m.size1(), m.size2()+1, true);
column(m, m.size2()) = column(m2, 0);

и, конечно, его необходимо скорректировать, если m2 имеет более одного столбца (или если существуют различия в размере1 между двумя матрицами)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...