我有一个非常大的matlab数据文件(2GB),我需要在scipy.io.loadmat
的python中加载。它返回MemoryError
。肯定是因为文件太大,在同一台机器上的matlab中加载返回内存错误。
但是加载此文件的一系列变量会成功,scipy,io,loadmat('data.mat',variable_names='var1')
。因此,我需要获取mat文件中所有变量的列表,而无需先加载文件then data.keys()
。
任何人都知道怎么做?
答案 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')]
(这是否是解决实际问题的最佳方法,我不知道。)