使用 Eigen 库中的 SVD 时抛出错误的分配异常

Bad alloc exception thrown when using SVD from Eigen library

在我的应用程序中,我想从具有 double 个条目的给定数据矩阵中获取左奇异向量,这在代码中给出为

Eigen::MatrixXd m;

尺寸为 45 x 904140。现在我在 Eigen 库中使用构造函数进行 SVD 分解,如下所示

Eigen::BDCSVD<Eigen::MatrixXd> svd(m, Eigen::ComputeFullU | Eigen::ComputeFullV);

在那里,抛出了错误的分配异常,更准确地说:

Unhandled exception at 0x00007FFA058850D8: Microsoft C++ exception: std::bad_alloc at memory location

错误std::bad_alloc通常意味着没有足够的内存来完成您的任务。

您可能无法在您的计算机上计算需要 904140 x 904140 的矩阵。