При реализации цепочки Маркова третьего порядка я получил ошибку, намекая на то, что существует максимальный размер разреженных матриц.
Например, запрашивается следующая разреженная матрица
T = spalloc(1e12,1e12,1e5);
Я получаю сообщение об ошибке
Ошибка при использовании разреженного Запрошенный массив 1000000000000x1000000000000 (7450,6 ГБ) превышает максимальный размер массива,Создание массивов, превышающих этот предел, может занять много времени и привести к тому, что MATLAB перестанет отвечать на запросы.См. Ограничение размера массива или панель предпочтений для получения дополнительной информации.
Из того, как я понимаю разреженные матрицы, матрица должна занимать ~ 3 * 8 * 1e5 = 2,4 МБ памяти (2 удваивается для координат идвойной для каждой ненулевой записи).Что значительно меньше заявленной 7450,6 ГБ в ошибке.
Неужели мое понимание разреженных матриц неверно?или что не так?И, наверное, самое главное, есть ли способ обойти эту проблему?