是否有一种直接、快速的方式将 list<VectorXd>“映射”到 MatrixXd?

Posted

技术标签:

【中文标题】是否有一种直接、快速的方式将 list<VectorXd>“映射”到 MatrixXd?【英文标题】:Is there a direct, fast way to "map" list<VectorXd> to MatrixXd? 【发布时间】:2017-02-24 04:19:07 【问题描述】:

我正在寻找一种直接、快速的方法将list&lt;VectorXd&gt; 转换为MatrixXd。我该怎么做?

Map<Eigen::MatrixXd> listV(list<VectorXd>)

不编译。

我也在考虑迭代 list&lt;VectorXd&gt; 并必须填写 MatrixXd,但这可能很慢且没有必要。

虽然我同意this answer 有助于我解决我的问题,但我不同意父问题与此问题重复。访问listvector 的方式可能不同,因此问题应该保持开放,因为答案不同。

【问题讨论】:

Eigen and std::vector的可能重复 【参考方案1】:

不,这是不可能的,因为 std::list 的元素不是按顺序存储在内存中的。因此,您必须在 std::vector 上使用 Map 一次处理一列。所以只有一个循环遍历 std::list 的元素。

【讨论】:

以上是关于是否有一种直接、快速的方式将 list<VectorXd>“映射”到 MatrixXd?的主要内容,如果未能解决你的问题,请参考以下文章

是否有一种快速算法可以将集合的所有分区生成为大小为 2 的子集(和一个大小为 1 的子集)?

C# 将 List<string> 转换为 Dictionary<string, string>

在 Visual Studio 2017 中,是不是有一种快速方法可以将“std::”添加到缺少它的名称中?

是否有一种定义明确且高性能的方式将双精度位转换为 uint64_t 并返回

是否有一种编程方式来检查 Linux 上的当前 rpath?

是否有一种非阻塞方式来检查 asyncio 子进程是否处于活动状态?