获取mat文件变量列表,而不在python中加载完整文件

时间:2013-12-29 03:15:09

标签: python scipy

我有一个非常大的matlab数据文件(2GB),我需要在scipy.io.loadmat的python中加载。它返回MemoryError。肯定是因为文件太大,在同一台机器上的matlab中加载返回内存错误。

但是加载此文件的一系列变量会成功,scipy,io,loadmat('data.mat',variable_names='var1')。因此,我需要获取mat文件中所有变量的列表,而无需先加载文件then data.keys()

任何人都知道怎么做?

1 个答案:

答案 0 :(得分:2)

要获取.mat文件中所有变量的列表,您可以使用scipy.io.whosmat

>>> import numpy as np, scipy.io
>>> md = {"A": np.random.random((100,3)), "B": np.zeros((1,2,3), dtype=int)}
>>> scipy.io.savemat("test.mat", md)
>>> scipy.io.whosmat("test.mat")
[('A', (100, 3), 'double'), ('B', (1, 2, 3), 'int32')]

(这是否是解决实际问题的最佳方法,我不知道。)