Откройте файл Matlab .mat с модулем PICKLE в Python.

1

Я хочу открыть проект Matlab с модулем Pickle или cPickle на языке Python. Не с:

from scipy.io import matlab
mat=matlab.loadmat('file.mat')

Могу ли я использовать pickle.load с файлом.mat?

  • 3
    краткий ответ: вы не можете, они совершенно разных форматов, продолжайте использовать SciPy ...
  • 1
    Почему вы хотите это сделать? Как все уже упоминают, это невозможно сделать, так как формат другой.
Показать ещё 1 комментарий
Теги:
pickle

3 ответа

4

В течение нескольких лет Matlab использовал HDF5 для хранения данных. Python поддерживает HDF5, используя PyTables. Не нужно использовать Pickle. Фактически, HDF5 может удивить вас своей скоростью относительно Pickle. Друг сообщил о 2-10X ускорениях чтения/записи для некоторых очень больших наборов данных.


Обновление 1: краткое руководство по загрузке файлов через HDF5 можно найти на этой странице.

Кроме того, на этой странице можно найти несколько хороших ссылок и ресурсов. Там также проект PyMat на Sourceforge.

2

Это невозможно. Из документации пилинга python

Модуль рассола реализует фундаментальный, но мощный алгоритм для сериализации и де-сериализации структуры объекта Python. "Травление" - это процесс, посредством которого иерархия объектов Python преобразуется в поток байтов, а "unpickling" - это обратная операция, посредством которой поток байтов преобразуется обратно в иерархию объектов. Однако травление (и переливание) альтернативно известно как "сериализация", "сортировка", " 1" или "сглаживание", чтобы избежать путаницы, используемые здесь термины "травление" и "рассыпание".

В вашем случае вы можете загрузить объект *.mat с помощью scipy.io и затем сериализовать его в некоторой структуре python, которую вы можете определить. В этот момент вы сможете легко рассолить и разложить его. (но этот последний шаг зависит, и в некоторых случаях его не стоит делать).

2

Вы не можете. Pickle загружает объекты Python, которые были сериализованы для двоичных данных. Формат не похож на формат файла Matlab.

Если вы прочитали все данные, которые вам нужны из файла matlab и сохранили их в объектах Python, вы можете сохранить их для последующего использования, если это необходимо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню