【发布时间】:2016-11-09 15:08:00
【问题描述】:
我不知道是否以及如何将二维双精度数组映射到 Eigen::Matrix。
是否可以将我收到的 double** p 数组 double d[][] 映射到 Eigen::Matrix?
虽然一维数组可以正常工作,但我无法将 p 映射到 Eigen::Map<Eigen::Matrix<double, n, n>>。这可能吗?怎么可能? n 的大小并不是固定不变的,但我可以接受硬编码的大小。
我尝试了几个版本,但都没有奏效。我认为以下应该可以工作(假设大小 n 为 4)。
Eigen::Map<Eigen::Matrix<double, 4, 4>> p_OUTPUT(&p[0][0]);
代码编译并运行,但只有第一列的元素和第二列的第一个元素映射了正确的值。使用 p[0] 作为参数会产生相同的结果。
我试过的其他版本(例如没有&)没有编译。
【问题讨论】:
-
你能展示你尝试了什么以及你想要实现什么吗?
n是编译时间常数吗?你确定p是double**? -
@AviGinsburg 感谢您的回复,我完成了我的问题。
n的大小不是一个常数,但硬编码大小就可以了。是的,我很确定p是double**,因为p[row][col] += ...有效。 -
见this 帖子。
-
@AviGinsburg 非常感谢,我在链接的帖子中支持您的回答!就在此时,我找到了一个非常相似的解决方案。