如何从Python中的Matlab .fig文件中提取数据?

时间:2015-04-10 03:41:41

标签: python matlab python-3.x file-io hdf5

如果我在Matlab .fig文件中保存了一些X和Y数据,有没有办法在Python中提取该数据?我尝试过使用previous discussion中显示的方法,但这对我不起作用。我还尝试使用h5py和PyTables打开文件,因为.mat文件现在实际上是HDF5文件,但这会导致无法找到有效文件签名的错误。

目前我正在尝试使用Python 3.4的Anaconda发行版。

编辑:我设法找出了有效的方法,但我不知道为什么。这让我担心将来可能会破坏,我将无法调试它。如果有人能解释为什么这样有效,但旧讨论中的方法并不是我真的很感激。

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

1 个答案:

答案 0 :(得分:0)

我能想到的最好方法是使用任何Matlab-Python桥(例如pymatbridge)。

您可以直接在python文件上调用Matlab代码,并将数据从一个转换为另一个。您可以使用一些Matlab代码加载图并提取数据,然后轻松地将数值变量转换为python数组(或numpy数组)。