如何复制特征矩阵

Nic*_*ick 3 c++ matrix eigen

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

以下是一个例子:

A
 0.5
Run Code Online (Sandbox Code Playgroud)

我需要创建一个B包含1行和4列的矩阵,这样它将是:

B
 0.5 0.5 0.5 0.5
Run Code Online (Sandbox Code Playgroud)

但如果A是:

A
 1 0.5
Run Code Online (Sandbox Code Playgroud)

然后B

B
 1 0.5 1 0.5
Run Code Online (Sandbox Code Playgroud)

我能怎么做?

Avi*_*urg 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;
}
Run Code Online (Sandbox Code Playgroud)

1 0.5
变为:
1 0.5 1 0.5