【问题标题】:How do you make a matrix out of vectors in eigen?你如何用特征向量制作矩阵?
【发布时间】:2013-05-04 11:12:42
【问题描述】:

我有四个列向量。我需要附加它们以制作一个四乘四矩阵。有没有构造函数之类的?

【问题讨论】:

  • @FantasticMrFox Eigen 有自己的矩阵和向量。我猜他是在问他们,而不是使用std::vector
  • @HakanDemir 这是前一段时间,但我想我想要的是你可以使用一个向量来初始化它。无论如何,不​​是骗子。

标签: c++ vector matrix eigen


【解决方案1】:

您也可以使用逗号初始化语法来附加它们:

m << v1, v2, v3, v4;

矩阵m必须先正确调整大小。

【讨论】:

  • 这是否复制了向量 v1v2v3v4?是否可以使用向量中的数据而不复制它们来创建矩阵m?也许是一个 const 引用或类似的东西?
  • 如果v{i} 是行向量呢?
  • 然后像你想象的那样逐行堆叠起来。
【解决方案2】:

快速查看docs

Vector4f v1(1,0,0,0);
Vector4f v2(0,1,0,0);
Vector4f v3(0,0,1,0);
Vector4f v4(0,0,0,1);
Matrix4f m;

m.row(0) = v1;
m.row(1) = v2;
m.row(2) = v3;
m.row(3) = v4;

std::cout << m << std::endl;

输出:

1,0,0,0
0,1,0,0
0,0,1,0
0,0,0,1

【讨论】:

    猜你喜欢
    • 2011-09-29
    • 1970-01-01
    • 2019-04-27
    • 2017-09-27
    • 2018-10-12
    • 1970-01-01
    • 2012-08-08
    • 2022-01-05
    • 1970-01-01
    相关资源
    最近更新 更多