特征:模板函数中矩阵的平面图

Eigen: Flat view of Matrix in Templated Function

本文关键字:平面图 函数 特征      更新时间:2023-10-16

对于1D大小调整,Eigen文档建议我使用以下方法来调整数组大小:

using Eigen;
MatrixXf X(2,2) << 1,2,3,4;
Map<RowVectorXf> v1(X.data(), X.size());

除了我有一个模板载体,不能使用RowVectorXf

using Eigen;
template<class num>
void my_func(){
Matrix<num,Dynamic,Dynamic> X(2,2) << 1,2,3,4;
Map<Matrix<num,Dynamic,Dynamic>> unraveled(X.data(),X.size());
}

上面的示例失败,并显示以下消息:

错误:静态断言失败:YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_AMIX

如何在模板函数中获得特征矩阵的平面图?

问题是Map是2D的,而不是您真正想要的1D:

Map<Matrix<num,Dynamic,1>> unraveled(X.data(),X.size());

现在它是对原始X矩阵的向量运算。