Eigen how to concatenate matrix along a specific dimension?

前端 未结 3 1311
轻奢々
轻奢々 2020-12-05 02:20

I have two eigen matrices and I would like to concatenate them, like in matlab cat(0, A, B)

Is there anything equivalent in eigen?

Thanks.

3条回答
  •  旧巷少年郎
    2020-12-05 02:43

    You can use the comma initializer syntax for that.

    Horizontally:

    MatrixXd C(A.rows(), A.cols()+B.cols());
    C << A, B;
    

    Vertically:

    // eigen uses provided dimensions in declaration to determine
    // concatenation direction
    MatrixXd D(A.rows()+B.rows(), A.cols()); // <-- D(A.rows() + B.rows(), ...)
    D << A, B; // <-- syntax is the same for vertical and horizontal concatenation
    

    For readability, one might format vertical concatenations with whitespace:

    D << A,
         B; // <-- But this is for readability only. 
    

提交回复
热议问题