如何将矩阵附加到另一个矩阵的末尾? (在C ++中使用Boost库)

时间:2010-07-13 20:22:33

标签: c++ boost

我有这个:

  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 个答案:

答案 0 :(得分:2)

嗯,这不优雅,但是我的第一次尝试:

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

当然,如果m2有多个列(或两个矩阵之间的大小1有差异),则需要进行调整