我有两个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
我该怎么办?
答案 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