作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在努力编写一个实用函数来在 Eigen Matrix
和 STL vector
之间进行转换。我已将我的代码压缩为:
#include <Eigen/Dense>
#include <vector>
#include <iostream>
template <int Flags=Eigen::RowMajor, typename Derived>
std::vector<typename Derived::Scalar>
eigenToStdVector(const Eigen::EigenBase<Derived>& b)
{
typedef typename Derived::Scalar Scalar;
std::vector<Scalar> out(b.size());
Eigen::Map<Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic, Flags> >
(out.data(), b.rows(), b.cols()) = b/*.derived()*/;
return out;
}
int
main ()
{
Eigen::MatrixXf v(2,4);
v << 1,2,3,4,5,6,7,8;
std::cout << v << std::endl;
for (auto i : eigenToStdVector(v))
std::cout << i << ' ';
std::cout << std::endl;
for (auto i : eigenToStdVector<Eigen::ColMajor>(v.transpose()))
std::cout << i << ' ';
std::cout << std::endl;
return 0;
}
而且我不明白为什么包含(注释的).derived()
行会导致编译成功。如果有人可以评论为什么包括这个是必要的,我将不胜感激!
我正在使用 GCC 4.8 和 Eigen 3.2.1。
最佳答案
您应该使用 DenseBase
而不是过于笼统的 EigenBase
基类。这种差异可能会在 3.3 中消失。
关于c++ - Eigen : THE_EVAL_EVALTO_FUNCTION_SHOULD_NEVER_BE_CALLED_FOR_DENSE_OBJECTS 编译时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23544049/
我一直在努力编写一个实用函数来在 Eigen Matrix 和 STL vector 之间进行转换。我已将我的代码压缩为: #include #include #include template
我是一名优秀的程序员,十分优秀!