2015-11-19 127 views
2

我有两个Eigen::MatrixXd,它们总是有一行。输入矩阵是A,我想将此矩阵复制到另一个矩阵B中,但矩阵之间的列数可能不同。如何复制特征矩阵

下面是一个例子:

A 
0.5 

,我需要建立一个B矩阵的1行4列,所以,这将是:

B 
0.5 0.5 0.5 0.5 

但如果A是:

A 
1 0.5 

Then B将是

B 
1 0.5 1 0.5 

我该怎么办?

回答

5

您可以通过使用(等待它)replicate函数来复制矩阵。第一个参数是重复行的次数,第二个是重复列的次数。

#include <iostream> 
#include <Eigen/Core> 

int main() 
{ 
    Eigen::MatrixXd a(1, 2), b; 
    a << 1, 0.5; 
    b = a.replicate(1, 2); 
    std::cout << a << "\nbecomes:\n" << b << std::endl; 

    return 0; 
} 

给出

1 0.5
变为:
1 0.5 1 0.5