Я хочу открыть и обработать некоторые большие файлы .mat в python. Функция scipy.io.loadmat идеально подходит для этой цели. Однако функция возвращает MemoryError, когда файлы .mat большие. Проблема может быть связана с используемой версией python (Python 2.7.10 32 бит, сопрягаемой со spyder). Эта проблема уже поднята, но я не могу найти достойного решения. В идеале я мог бы открыть эти файлы, не меняя свой питон. Есть ли способ заставить scipy.io.loadmat загружать только некоторые переменные, содержащиеся в файле .mat?scipy.io.loadmat возвращает MemoryError для больших структур matlab
0
A
ответ
2
Смотрите документацию здесь: http://docs.scipy.org/doc/scipy/reference/generated/scipy.io.loadmat.html
Вы можете передать список имен переменных для чтения из файла:
scipy.io.loadmat("myfile.mat", variable_names=["myvar1", "myvar2"])
Спасибо. Обратите внимание, однако, что этот трюк не является подходящим решением в долгосрочной перспективе. Любая идея, как избавиться от этой ошибки памяти? – user1363251
Что вы имеете в виду? В чем проблема в долгосрочной перспективе? – hpaulj
Мы должны иметь возможность открывать любые файлы .mat с помощью функции scipy.io.loadmat() независимо от размера файла. Сейчас это не так. Я систематически получаю ошибки памяти при попытке открыть файлы .mat> .1 GB – user1363251