通过赋值可以将 Eigen::Map
转换为 Matrix
:
vector<float> v = { 1, 2, 3, 4 };
auto m_map = Eigen::Map<Eigen::Matrix<float, 2, 2, Eigen::RowMajor>>(&v[0]);
Eigen::MatrixXf m = m_map;
cout << m << endl;
这将产生以下结果:
1 2
3 4
如果我试图使用Tensor
做类似的事情:
vector<float> v = { 1, 2, 3, 4 };
auto mapped_t = Eigen::TensorMap<Eigen::Tensor<float, 2, Eigen::RowMajor>>(&v[0], 2, 2);
Eigen::Tensor<float, 2> t = mapped_t;
我只是得到编译器错误 YOU_MADE_A_PROGRAMMING_MISTAKE
。有没有办法将TensorMap转换为Tensor?