如何复制特征矩阵

时间:2015-11-19 15:54:09

标签: c++ matrix eigen

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

以下是一个例子:

A
 0.5

我需要创建一个包含1行和4列的B矩阵,以便它可以:

B
 0.5 0.5 0.5 0.5

但如果A是:

A
 1 0.5

然后B将是

B
 1 0.5 1 0.5

我该怎么办?

1 个答案:

答案 0 :(得分:6)

您可以使用(等待它)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