代码之家  ›  专栏  ›  技术社区  ›  Alex. S.

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

  •  1
  • Alex. S.  · 技术社区  · 14 年前

    我有这个:

      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
    

     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

    1 回复  |  直到 14 年前
        1
  •  2
  •   Alex. S.    14 年前

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

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

    当然,如果m2有多个列(或者如果两个矩阵之间的size1存在差异),则需要对其进行调整