scipy.io.matlab.

varmats_from_mat#

scipy.io.matlab.varmats_from_mat(file_obj)[源代码]#

从 mat 5 文件中提取变量作为 mat 文件对象的序列

这对于包含无法读取的变量的困难的 mat 文件很有用。 此例程以原始形式提取变量,并将它们(未读取)放回文件流中以进行保存或读取。 另一种用途是病理情况,即文件中存在多个同名变量; 此例程返回重复项,而标准读取器将覆盖返回字典中的重复项。

file_obj 中的文件指针将是未定义的。 返回的文件类对象的文件指针设置为 0。

参数:
file_obj类文件对象

包含 mat 文件的文件对象

返回值:
named_mats列表

列表包含 (name, BytesIO) 元组,其中 BytesIO 是一个类文件对象,包含 mat 文件内容,就像单个变量一样。 BytesIO 包含一个字符串,其中包含原始标头和单个 var。 如果 var_file_obj 是单个 BytesIO 实例,则使用类似 open('test.mat', 'wb').write(var_file_obj.read()) 的内容将其另存为 mat 文件

示例

>>> import scipy.io
>>> import numpy as np
>>> from io import BytesIO
>>> from scipy.io.matlab._mio5 import varmats_from_mat
>>> mat_fileobj = BytesIO()
>>> scipy.io.savemat(mat_fileobj, {'b': np.arange(10), 'a': 'a string'})
>>> varmats = varmats_from_mat(mat_fileobj)
>>> sorted([name for name, str_obj in varmats])
['a', 'b']