scipy.io.

whosmat#

scipy.io.whosmat(file_name, appendmat=True, **kwargs)[源代码][源代码]#

列出 MATLAB 文件中的变量。

参数:
文件名str

mat 文件的名称(如果 appendmat==True,则不需要 .mat 扩展名)也可以传递打开的类文件对象。

appendmatbool, 可选

如果给定的文件名末尾尚未存在 .mat 扩展名,则将其附加到末尾。默认为 True。

字节顺序str 或 None, 可选

默认情况下为 None,表示从 mat 文件中猜测字节顺序。否则可以是以下之一 (‘native’, ‘=’, ‘little’, ‘<’, ‘BIG’, ‘>’).

mat_dtypebool, 可选

如果为 True,返回与加载到 MATLAB 中相同的 dtype 的数组(而不是保存它们的 dtype)。

squeeze_mebool, 可选

是否压缩单位矩阵的维度。

chars_as_stringsbool, 可选

是否将字符数组转换为字符串数组。

matlab_compatiblebool, 可选

返回矩阵,如同由 MATLAB 加载的那样(意味着 squeeze_me=False,chars_as_strings=False,mat_dtype=True,struct_as_record=True)。

struct_as_recordbool, 可选

是否将 MATLAB 结构体加载为 NumPy 记录数组,还是作为旧式 NumPy 数组(dtype=object)。将此标志设置为 False 会复制 SciPy 版本 0.7.x 的行为(返回 numpy 对象数组)。默认设置为 True,因为它允许更方便地往返加载和保存 MATLAB 文件。

返回:
变量元组列表

一个元组列表,其中每个元组包含矩阵名称(字符串)、其形状(整数元组)及其数据类(字符串)。可能的数据类包括:int8、uint8、int16、uint16、int32、uint32、int64、uint64、single、double、cell、struct、object、char、sparse、function、opaque、logical、unknown。

注释

支持 v4 (Level 1.0)、v6 和 v7 到 7.2 的 mat 文件。

您需要一个 HDF5 Python 库来读取 matlab 7.3 格式的 mat 文件(例如 h5py)。因为 SciPy 没有提供这样的库,我们在这里不实现 HDF5 / 7.3 接口。

Added in version 0.12.0.

示例

>>> from io import BytesIO
>>> import numpy as np
>>> from scipy.io import savemat, whosmat

创建一些数组,并使用 savemat 将它们写入 BytesIO 实例。

>>> a = np.array([[10, 20, 30], [11, 21, 31]], dtype=np.int32)
>>> b = np.geomspace(1, 10, 5)
>>> f = BytesIO()
>>> savemat(f, {'a': a, 'b': b})

使用 whosmat 检查 f。输出列表中的每个元组给出了数组 f 中的名称、形状和数据类型。

>>> whosmat(f)
[('a', (2, 3), 'int32'), ('b', (1, 5), 'double')]