2015-04-10 6 views
2

Если у меня есть данные X vs Y, сохраненные в файле .fig Matlab, есть ли способ извлечь эти данные в Python? Я пробовал использовать метод, показанный в previous discussion, но это не работает для меня. Я также пытался открыть файлы с помощью h5py и PyTables, поскольку файлы .mat на самом деле являются файлами HDF5, но это приводит к ошибке, когда действительная подпись файла не найдена.Как извлечь данные из файлов Matlab .fig в Python?

В настоящее время я пытаюсь сделать это с дистрибутивом Anaconda Python 3.4.

EDIT: Мне удалось выяснить, что работает, но я не знаю почему. Это меня беспокоит, что в будущем что-то может сломаться, и я не смогу его отладить. Если кто-нибудь может объяснить, почему это работает, но метод в старой дискуссии не я бы действительно оценил это.

from scipy.io import loadmat 
d = loadmat('linear.fig', squeeze_me=True, struct_as_record=False) 
x = d['hgS_070000'].children.children.properties.XData 
y = d['hgS_070000'].children.children.properties.YData 

ответ

0

Лучший способ я могу вспомнить, с помощью любого моста Matlab-Python (например, pymatbridge).

Вы можете вызвать код Matlab непосредственно на файлы python и преобразовать данные из одного в другой. Вы можете использовать некоторый код Matlab для загрузки фига и извлечения данных, а затем легко преобразовать числовые переменные в массивы python (или массивы numpy).

+0

Это интерфейс, не означает ли это, что также требуется Matlab? Целью моего проекта является независимость Matlab. Просто данные, которые необходимо проанализировать, хранятся в файлах .fig в настоящее время, поскольку это было удобно в то время. –

+0

@MattCrank да, действительно, вам нужен Matlab. Я предположил, что вы можете использовать его, как вы, используя изображения изображения. Надеюсь, ты сможешь! удачи –

Смежные вопросы