Максимальный размер разреженной матрицы - PullRequest
0 голосов
/ 08 июня 2018

При реализации цепочки Маркова третьего порядка я получил ошибку, намекая на то, что существует максимальный размер разреженных матриц.

Например, запрашивается следующая разреженная матрица

T = spalloc(1e12,1e12,1e5);

Я получаю сообщение об ошибке

Ошибка при использовании разреженного Запрошенный массив 1000000000000x1000000000000 (7450,6 ГБ) превышает максимальный размер массива,Создание массивов, превышающих этот предел, может занять много времени и привести к тому, что MATLAB перестанет отвечать на запросы.См. Ограничение размера массива или панель предпочтений для получения дополнительной информации.

Из того, как я понимаю разреженные матрицы, матрица должна занимать ~ 3 * 8 * 1e5 = 2,4 МБ памяти (2 удваивается для координат идвойной для каждой ненулевой записи).Что значительно меньше заявленной 7450,6 ГБ в ошибке.

Неужели мое понимание разреженных матриц неверно?или что не так?И, наверное, самое главное, есть ли способ обойти эту проблему?

...