c++ - Eigen 矩阵分配需要很长时间——有解决办法吗?

标签 c++ matrix eigen

我正在尝试通过以下方式在 Eigen 矩阵中创建相当大的矩阵(以存储点数据)

void MyFunction(Eigen::MatrixBase<Derived1>& X) {

    // Create empty matrix
    Eigen::Matrix3Xf Q = Eigen::Matrix3Xf::Zero(3, X.cols());

其中 X.cols 约为 300,000。当我在 Debug模式下单步执行代码时,这会花费很长时间,因此很难测试我的代码。有没有办法更快地分配矩阵?我正在考虑使用 Eigen::Map 类将指针传递给 float 组。非常感谢任何见解。

最佳答案

我犯了一个愚蠢的错误,在 Release模式下调试我的代码 (vs2013)。如果您想单步执行代码,请确保您的设置处于调试状态。正如 ggael 所建议的那样,更改此设置可将一切加速到几毫秒。

关于c++ - Eigen 矩阵分配需要很长时间——有解决办法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29851925/

相关文章:

C++函数什么时候删除返回值?

c++ - 使用 Eigen 计算 Cholesky 分解

c++ - 从 Eigen::CwiseBinaryOp 转换为 MatrixXd 导致段错误

c++ - Eigen::Ref<> 与 std::reference_wrapper<> 的优缺点是什么?

c - 从矩阵读取,用 malloc 分配,AddressSanitizer : heap-buffer-overflow

c++ - 逗号初始化和构造函数 C++ 和 Eigen

c++ - C++中的引用代表对象吗?

c++ - 为什么要将对象的拷贝作为函数的参数?为什么 const ref 不是参数的默认方式?

C++语法问题

c++ - 使用带下标运算符的赋值运算符为 std::map 赋值