2015-11-19 147 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