При использовании SVD из библиотеки Eigen выброшено исключение Bad allo c - PullRequest
0 голосов
/ 05 августа 2020

В моем приложении я хочу получить левые сингулярные векторы из заданной матрицы данных с double записями, которые указаны в коде как

Eigen::MatrixXd m;

и имеют габариты 45 x 904140 . Теперь я использую конструктор для разложения SVD в библиотеке Eigen, как показано ниже

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

, и там выдается исключение bad allo c, точнее:

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

1 Ответ

2 голосов
/ 05 августа 2020

Ошибка std::bad_alloc обычно означает, что памяти недостаточно для выполнения вашей задачи.

Возможно, вы не сможете вычислить матрицу, для которой требуется 904140 x 904140 на вашем компьютере.

...