У меня нет исправления, но вот некоторые методы отладки для OOM в Matlab, которые кажутся уместными.
Пакет работает не так хорошо, как говорит его доко. Если память фрагментирована на низком уровне (нередко), вы должны перезапустить Matlab, чтобы это исправить. «Память» и «функциональные мемстаты» дадут некоторое представление о фрагментации низкого уровня. Попробуйте перезапустить и запустить новую сессию Matlab, чтобы посмотреть, фрагментирована ли она, или она действительно использует пиковое количество памяти.
Попробуйте выполнить команду "dbstop if all error", чтобы вы взломали отладчик, когда у вас закончилась память. Затем вы можете исследовать кадры стека с помощью dbup и dbdown, чтобы увидеть, что удерживает память, и посмотреть, есть ли на удивление большие массивы. OOM иногда происходят из неправильно рассчитанных индексов или размеров массивов, которые в итоге выделяют очень большие массивы.
Недокументированная опция "profile on -memory" может рассказать вам об использовании памяти во время выполнения, что может помочь.
И ваш набор данных может быть слишком большим. Посмотрите, сможете ли вы разбить его на более мелкие части и зациклить их, уменьшив пиковые требования к памяти.
Удачи.