相关疑难解决方法(0)

使用std :: vector初始化Eigen :: vector

我之前已经看过它,但我不记得如何有效地初始化具有相同长度Eigen::Vector的已知std::vector长度.这是一个很好的例子:

std::vector<double> v1 = {1.0, 2.0, 3.0};

Eigen::Vector3d v2; // Do I put it like this in here: v2(v1) ?
v2 << v1[0], v1[1], v1[2]; // I know you can do it like this but 
                           // I am sure i have seen a one liner.
Run Code Online (Sandbox Code Playgroud)

我已经仔细阅读了有关高级矩阵初始化的这一页,但没有明确解释执行此操作的方法.

c++ eigen

39
推荐指数
4
解决办法
4万
查看次数

使用Eigen库将列附加到矩阵

这是一项非常简单的任务,但我无法找到答案:

使用本征库,假设我有Matrix2Xd matVector2d vec,其中

mat = 1 1 1
      1 1 1
vec = 2 2
Run Code Online (Sandbox Code Playgroud)

现在我需要像mat.addCol(vec)这样算账

mat = 1 1 1 2
      1 1 1 2
Run Code Online (Sandbox Code Playgroud)

实现这一目标的最佳(最简单)方法是什么?

请注意,这不是重复如何从特征中的向量中生成矩阵?.我不想初步构建矩阵,而是附加到现有矩阵.或者是否有一个技巧,在这种情况下如何使用逗号初始化?以下代码将失败:

Matrix2Xd mat(2,3);
Vector2d vec;
mat << 1, 1, 1, 1, 1, 1;
vec << 2, 2;

cout << mat << endl;
mat << vec;             // <-- crashes here
cout << mat << endl;
Run Code Online (Sandbox Code Playgroud)

编辑:以下工作,但我不喜欢这种基本任务的临时变量的需要.有没有更好的办法?

Matrix2Xd tmp(2, mat.cols()+1);
tmp << mat, vec;
mat …
Run Code Online (Sandbox Code Playgroud)

c++ eigen

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×2

eigen ×2