如何复制特征矩阵

How to copy Eigen matrix

我有两个 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

我该怎么办?

您可以使用(稍等)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
becomes:
1 0.5 1 0.5