我找到了将原始数组转换为Eigen类的Eigen :: Map类(以及一些有用的片段https://stackoverflow.com/a/12007784/1136458)
是否有任何Eigen或vtk类将vtk数组转换为Eigen类(并返回)? 我现在正在尝试的是:
使用map有一个matrixxd
Eigen::MatrixXd eig_arr;
eig_arr = Eigen::Map<Eigen::MatrixXd> (cpp_matrix.data(), n_rows, n_components)
但是我收到以下错误:
错误C2665:'Eigen :: Map :: Map':4个重载中没有一个可以转换所有参数类型
我不一定需要中间cpp_matrix,如果有一个直接方法也可以
答案 0 :(得分:1)
std::vector<std::vector<double> >
的内存布局与Eigen::Map
期待的内容不兼容。所有条目必须按顺序存储在内存中,每列之间有一个可选的常量空间。因此,如果vtkDoubleArray
的内存布局不可兼容,那么您别无选择,只能使用手动循环复制值。
答案 1 :(得分:0)
如何将vtkMappedDataArray转换为Eigen :: matrix?
我在&#34; vtkMappedDataArray&#34;以及关于&#34; InSituDataStructures&#34;的讨论对于VTK。 不幸的是,我不知道任何细节但也许有帮助。请告诉我们。