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

2023-11-29

我以前见过它,但我不记得如何有效地初始化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.

我读过this有关高级矩阵初始化的页面,但没有明确说明执行此操作的方法。


根据本征文件,Vector是 Matrix 的 typedef,并且 Matrix 有一个构造函数带有以下签名:

Matrix (const Scalar *data)

构造一个固定大小的矩阵,该矩阵使用从 data 开始的系数进行初始化。

And 矢量参考定义了std::vector::data as:

std::vector::data

T* data();
const T* data() const;

返回指向用作元素存储的底层数组的指针。 指针的范围是这样的[data(); data() + size())总是一个 有效范围,即使容器是空的。

因此,您可以将向量的数据作为Vector3d构造函数参数:

Eigen::Vector3d v2(v1.data());

另外,从 Eigen 3.2.8 开始,上述构造函数定义为:

template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
inline Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>
  ::Matrix(const Scalar *data)
{
  this->_set_noalias(Eigen::Map<const Matrix>(data));
}

正如你所看到的,它还使用Eigen::Map正如 @ggael 和 @gongzhitaao 所指出的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 std::vector 初始化 Eigen::vector 的相关文章

  • 将处理后的图形绘制到另一个图形中

    我想将一个经过处理的图形绘制到另一个图形中 I have two graphics var gHead Graphics FromImage h var gBackground Graphics FromImage b Transform
  • 在 C++ 中分割大文件

    我正在尝试编写一个程序 该程序接受一个大文件 任何类型 并将其分成许多较小的 块 我想我已经有了基本的想法 但由于某种原因我无法创建超过 12 kb 的块大小 我知道谷歌等上有一些解决方案 但我更感兴趣的是了解这个限制的根源是什么 然后实际
  • 为什么基类必须有一个带有 0 个参数的构造函数?

    这不会编译 namespace Constructor0Args class Base public Base int x class Derived Base class Program static void Main string a
  • 获取两个字符串之间的公共部分c# [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要的是获取两个单词之间的共同部分并获取差异 例子 场景1 word1 感言 word2 Test 将返回 公共部分Test 不同之
  • 在 OpenCL 中将函数作为参数传递

    是否可以在 OpenCL 1 2 中将函数指针传递给内核 我知道可以用C实现 但不知道如何在OpenCL的C中实现 编辑 我想做这篇文章中描述的同样的事情 在 C 中如何将函数作为参数传递 https stackoverflow com q
  • try-catch 中未处理的异常

    try list from XElement e in d Descendants wix File where e Attribute Name Value Contains temp Name e Parent Parent Attri
  • 在 Xcode4 中使用 Boost

    有人设置 C Xcode4 项目来使用 Boost 吗 对于一个简单的 C 控制台应用程序 我需要在 Xcode 中设置哪些设置 Thanks 用这个来管理它 和这个
  • std::map 和二叉搜索树

    我读过 std map 是使用二叉搜索树数据结构实现的 BST 是一种顺序数据结构 类似于数组中的元素 它将元素存储在 BST 节点中并按其顺序维护元素 例如如果元素小于节点 则将其存储在节点的左侧 如果元素大于节点 则将其存储在节点的右侧
  • ZLIB 解压缩

    我编写了一个小型应用程序 该应用程序应该解压缩以 gzip deflate 格式编码的数据 为了实现这一点 我使用 ZLIB 库 使用解压缩功能 问题是这个功能不起作用 换句话说 数据不是未压缩的 我在这里发布代码 int decompre
  • 如何用 kevent() 替换 select() 以获得更高的性能?

    来自Kqueue 维基百科页面 http en wikipedia org wiki Kqueue Kqueue 在内核和用户空间之间提供高效的输入和输出事件管道 因此 可以修改事件过滤器以及接收待处理事件 同时每次主事件循环迭代仅使用对
  • 禁用 LINQ 上下文的所有延迟加载或强制预先加载

    我有一个文档生成器 目前包含约 200 个项目的查询 但完成后可能会超过 500 个 我最近注意到一些映射表示延迟加载 这给文档生成器带来了一个问题 因为它需要根据生成的文档来访问所有这些属性 虽然我知道DataLoadOptions可以指
  • 单元测试失败,异常代码为 c0000005

    我正在尝试使用本机单元测试项目在 Visual Studios 2012 中创建单元测试 这是我的测试 TEST METHOD CalculationsRoundTests int result Calculations Round 1 0
  • std::bind 重载解析

    下面的代码工作正常 include
  • Qt - 设置不可编辑的QComboBox的显示文本

    我想将 QComboBox 的文本设置为某些自定义文本 不在 QComboBox 的列表中 而不将此文本添加为 QComboBox 的项目 此行为可以在可编辑的 QComboBox 上实现QComboBox setEditText cons
  • 如何检测 C# 中该字典键是否存在?

    我正在使用 Exchange Web 服务托管 API 和联系人数据 我有以下代码 即功能性的 但并不理想 foreach Contact c in contactList string openItemUrl https service
  • 无法使用 Ninject 将依赖项注入到从 Angular 服务调用的 ASP.NET Web API 控制器中

    我将 Ninject 与 ASP NET MVC 4 一起使用 我正在使用存储库 并希望进行构造函数注入以将存储库传递给其中一个控制器 这是实现 StatTracker 接口的上下文对象 EntityFramework public cla
  • 内核开发和 C++ [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 从我know https stackoverflow com questions 580292 what languages are windo
  • 在基类集合上调用派生方法

    我有一个名为 A 的抽象类 以及实现 A 的其他类 B C D E 我的派生类持有不同类型的值 我还有一个 A 对象的列表 abstract class A class B class A public int val get privat
  • Azure函数版本2.0-应用程序blobTrigger不工作

    我有一个工作功能应用程序 它有一个 blob 输入和一个事件中心输出 在测试版中工作 随着最新的更改 我的功能不再起作用 我尝试根据发行说明更新 host json 文件 但它没有引用 blob 触发器 version 2 0 extens
  • 如何创建向后兼容 Windows 7 的缩放和尺寸更改每显示器 DPI 感知应用程序?

    我是 WPF 和 DPI 感知 API 的新手 正在编写一个在 Windows 7 8 1 和 10 中运行的应用程序 我使用具有不同每个显示器 DPI 设置的多个显示器 并且有兴趣将我的应用程序制作为跨桌面配置尽可能兼容 我已经知道可以将

随机推荐

  • python Spyder 不导入 numpy

    我正在使用 python Spyder 2 2 5 和 Windows 7 python 2 7 编写脚本 一开始我尝试了所有的导入方式 from numpy import or import numpy and also import n
  • 以类名作为返回类型的方法

    我是 C 或任何类型的编程语言的新手 当我看到c 中的代码时 我发现这里有很多混乱 我想从这里澄清其中之一 方法的常见结构是
  • 从 VBA 运行 python 脚本

    设想 我正在尝试从 Excel 中的 vba 代码运行 python 脚本 代码运行没有错误 但没有产生任何结果 VBA 中的代码 Private Sub CommandButton1 Click Dim Ret Val Dim args
  • 尝试将数据附加到子值时应用程序崩溃

    我正在按照 firebase 中所示的说明进行操作 但即使在确保文本条目的类型为字符串之后 我仍然遇到崩溃 这是错误 由于未捕获的异常 InvalidPathValidation 而终止应用程序 原因 child 必须是非空字符串且不包含
  • Java 并发递增值

    我一直在读关于volatile and synchronized但我一直在困惑中摸不着头脑 我希望有人能帮助我解决问题 private HashMap
  • ALTER TABLE 脚本中的 MySQL 变量

    您好以下过程必须将所有约束从一个表移至另一个表 但是我在应删除约束时遇到了一些困难 问题 如何在下面的行中使用变量 ALTER TABLE var referenced table name DROP FOREIGN KEY var con
  • R:将日期从每日转换为每周并绘制它们

    我正在尝试学习如何处理时间序列数据 我创建了一些虚假的每日数据 尝试按周聚合它 然后绘制它 set seed 123 library xts library ggplot2 date decision made seq as Date 20
  • setf 在函数中不起作用

    我在脚本中定义了一个特殊变量 unsorted list 和一个用于重置此变量的函数 defparameter unsorted lst nil defun reset to unsorted list setf unsorted lst
  • 将 .tar.gz 文件的内容从网站读取到 python 3.x 对象中

    我是Python新手 当尝试将 tar gz 文件的内容读入 python 时 我无法弄清楚我做错了什么 我想要阅读的 tar 文件托管在以下网址 ftp ftp ncbi nlm nih gov pub pmc b0 ac Breast
  • 目录的平均和最大大小

    我有一个目录和一堆子目录 如下所示 目录1 sub dir1 sub dir2 sub dir3 sub dir4 sub dir5 等等 数百个 如何查明子目录的平均大小是多少 如何找到子目录的最大大小是多少 全部使用 Unix 命令 T
  • 让输入按钮像 一样运行,无需使用 JavaScript

    我知道我可以分配一个onclick采取行动
  • 获取文件夹中最近更新的文件的 filemtime

    我有一个包含 4 个文件的文件夹 我想提取最近一个文件的最后修改时间 可能并不总是相同 有没有好的方法可以做到这一点 Use a 目录迭代器找到文件 然后简单地比较它们的修改时间 这应该这样做 iterator new DirectoryI
  • 在 apache 中运行 Node.js?

    我们在一台机器上安装了 Apache Web 服务器 该机器还使用 Perl 提供页面服务 对于一个项目 我决定使用 Node js 而不是 Perl Ruby 只是想知道是否可以使用 Apache 作为我的网络服务器 因此它为页面提供服务
  • 在 Qt 中使用 aar 库

    是否可以在 Qt 应用程序中使用 Android Studio 库 aar 文件 问题是 我想用 Qt 实现一个移动应用程序 但只有一个 Android Studio 库 是否可以将该库包含在 Qt 项目中或者让我为其编写一个包装类 如果我
  • 使用 maven-rpm-plugin 如何替换类似于程序集插件的文件中的文本

    我有一个 Maven 项目 我在其中创建了两个包装 一种是 tar gz 文件 针对某些目标 以及针对可以使用 RPM 的 Linux 目标的 RPM 我使用 maven assembly plugin 作为 tar gz 文件 我使用 m
  • 是否需要在@interface中声明ivars来匹配属性? [复制]

    这个问题在这里已经有答案了 可能的重复 Objective C 2 0 中的属性和实例变量 我对这两个代码段感到困惑 First h interface Student NSObject property nonautomic copy N
  • mySQL 返回每个类别的前 5 名

    我希望能够为每个菜单返回 5 个菜单项 我已经尝试过这几个脚本但没有运气 这是表格 menus menuid int profileName varchar 35 menuitems itemid int name varchar 40 这
  • 容器中的文本字段 - 键盘隐藏文本

    我在底部的容器 VBox 中有一个 TextField 当我选择文本字段输入一些文本时 它会隐藏在键盘后面 iPhone 我把 VBox 放在 ScrollPane 中 但还是一样 我可以以某种方式让键盘获得其高度吗 如何放置键盘未覆盖的文
  • deSolve 包参数可以包含矩阵吗?

    我正在尝试编写一个按年龄分层的 SEIR 模型 也就是说 在我的微分方程中 我有一个群体行动参数 它是 20 个年龄段的 beta 感染比例 易感人数 的总和 传输系数 是根据接触矩阵计算得出的 接触矩阵有 20 列和行 代表年龄类别 行
  • 使用 std::vector 初始化 Eigen::vector

    我以前见过它 但我不记得如何有效地初始化Eigen Vector已知长度的std vector相同长度的 这是一个很好的例子 std vector