如何复制特征矩阵

How to copy Eigen matrix

本文关键字:特征 复制 何复制      更新时间:2023-10-16

我有两个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
变为:
1 0.5 1 0.5