如何复制特征矩阵
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
我有两个 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