本文简要介绍 python 语言中 scipy.io.matlab.loadmat
的用法。
用法:
scipy.io.matlab.loadmat(file_name, mdict=None, appendmat=True, **kwargs)#
加载 MATLAB 文件。
- file_name: str
mat 文件的名称(如果 appendmat==True,则不需要 .mat 扩展名)。也可以通过打开的file-like 对象。
- mdict: 字典,可选
在其中插入 matfile 变量的字典。
- appendmat: 布尔型,可选
如果不存在,则将 .mat 扩展名附加到给定文件名的末尾。默认为真。
- byte_order: str 或无,可选
默认情况下无,暗示从 mat 文件中猜测的字节顺序。否则可以是(‘native’、'='、‘little’、'<'、'BIG'、'>')之一。
- mat_dtype: 布尔型,可选
如果为 True,则返回与加载到 MATLAB 相同 dtype 的数组(而不是保存它们的 dtype)。
- squeeze_me: 布尔型,可选
是否压缩单位矩阵维度。
- chars_as_strings: 布尔型,可选
是否将 char 数组转换为字符串数组。
- matlab_compatible: 布尔型,可选
返回将由 MATLAB 加载的矩阵(暗示 squeeze_me=False、chars_as_strings=False、mat_dtype=True、struct_as_record=True)。
- struct_as_record: 布尔型,可选
是否将 MATLAB 结构加载为 NumPy 记录数组,或者加载为 dtype=object 的 old-style NumPy 数组。将此标志设置为 False 会复制 scipy 版本 0.7.x 的行为(返回 NumPy 对象数组)。默认设置为 True,因为它可以更轻松地 round-trip 加载和保存 MATLAB 文件。
- verify_compressed_data_integrity: 布尔型,可选
是否应检查 MATLAB 文件中压缩序列的长度,以确保它们不会比我们预期的长。建议启用此函数(默认设置),因为 MATLAB 文件中过长的压缩序列通常表明文件已发生某种损坏。
- variable_names: 无或序列
如果 None (默认值) - 读取文件中的所有变量。否则,variable_names 应该是一个字符串序列,给出要从文件中读取的 MATLAB 变量的名称。阅读器将跳过名称不在此序列中的任何变量,可能会节省一些读取处理。
- simplify_cells: 错误的,可选的
如果为 True,则返回简化的 dict 结构(如果 mat 文件包含元胞数组,这很有用)。请注意,这只影响结果的结构,而不影响其内容(这对于两个输出结构都是相同的)。如果为 True,这会自动将 struct_as_record 设置为 False,并将 squeeze_me 设置为 True,这是简化单元格所必需的。
- mat_dict: dict
以变量名作为键的字典,并将加载的矩阵作为值。
参数 ::
返回 ::
注意:
支持 v4(1.0 级)、v6 和 v7 到 7.2 的 matfile。
您将需要 HDF5 Python 库来读取 MATLAB 7.3 格式的 mat 文件。由于SciPy没有提供,因此我们在这里不实现HDF5 /7.3接口。
例子:
>>> from os.path import dirname, join as pjoin >>> import scipy.io as sio
从测试/数据目录中获取示例 .mat 文件的文件名。
>>> data_dir = pjoin(dirname(sio.__file__), 'matlab', 'tests', 'data') >>> mat_fname = pjoin(data_dir, 'testdouble_7.4_GLNX86.mat')
加载 .mat 文件内容。
>>> mat_contents = sio.loadmat(mat_fname)
结果是一个字典,每个变量都有一个键/值对:
>>> sorted(mat_contents.keys()) ['__globals__', '__header__', '__version__', 'testdouble'] >>> mat_contents['testdouble'] array([[0. , 0.78539816, 1.57079633, 2.35619449, 3.14159265, 3.92699082, 4.71238898, 5.49778714, 6.28318531]])
默认情况下,SciPy 将 MATLAB 结构体读取为结构化 NumPy 数组,其中 dtype 字段的类型为 object,名称对应于 MATLAB 结构体字段名称。可以通过设置可选参数struct_as_record=False 来禁用此函数。
获取包含名为 teststruct 的 MATLAB 结构的示例 .mat 文件的文件名并加载内容。
>>> matstruct_fname = pjoin(data_dir, 'teststruct_7.4_GLNX86.mat') >>> matstruct_contents = sio.loadmat(matstruct_fname) >>> teststruct = matstruct_contents['teststruct'] >>> teststruct.dtype dtype([('stringfield', 'O'), ('doublefield', 'O'), ('complexfield', 'O')])
结构化数组的大小是 MATLAB 结构的大小,而不是任何特定字段中元素的数量。除非可选参数squeeze_me=True,否则形状默认为二维,在这种情况下,所有长度为 1 的维度都将被删除。
>>> teststruct.size 1 >>> teststruct.shape (1, 1)
获取 MATLAB 结构中第一个元素的 ‘stringfield’。
>>> teststruct[0, 0]['stringfield'] array(['Rats live on no evil star.'], dtype='<U26')
获取‘doublefield’ 的第一个元素。
>>> teststruct['doublefield'][0, 0] array([[ 1.41421356, 2.71828183, 3.14159265]])
加载 MATLAB 结构,挤出长度为 1 的维度,并从 ‘complexfield’ 中获取项目。
>>> matstruct_squeezed = sio.loadmat(matstruct_fname, squeeze_me=True) >>> matstruct_squeezed['teststruct'].shape () >>> matstruct_squeezed['teststruct']['complexfield'].shape () >>> matstruct_squeezed['teststruct']['complexfield'].item() array([ 1.41421356+1.41421356j, 2.71828183+2.71828183j, 3.14159265+3.14159265j])
相关用法
- Python SciPy matlab.savemat用法及代码示例
- Python SciPy matlab.whosmat用法及代码示例
- Python SciPy mstats.trim用法及代码示例
- Python SciPy mstats.winsorize用法及代码示例
- Python SciPy mstats.argstoarray用法及代码示例
- Python SciPy misc.ascent用法及代码示例
- Python SciPy mstats.trima用法及代码示例
- Python SciPy mstats.tmin用法及代码示例
- Python SciPy misc.derivative用法及代码示例
- Python SciPy mstats.tmax用法及代码示例
- Python SciPy mstats.kruskalwallis用法及代码示例
- Python SciPy mstats.sem用法及代码示例
- Python SciPy mstats.zscore用法及代码示例
- Python SciPy mstats.zmap用法及代码示例
- Python SciPy mstats.mode用法及代码示例
- Python SciPy misc.face用法及代码示例
- Python SciPy mstats.hmean用法及代码示例
- Python SciPy mstats.variation用法及代码示例
- Python SciPy mstats.compare_medians_ms用法及代码示例
- Python SciPy misc.central_diff_weights用法及代码示例
- Python SciPy mstats.gmean用法及代码示例
- Python SciPy mstats.pearsonr用法及代码示例
- Python SciPy mstats.kruskal用法及代码示例
- Python SciPy mstats.tmean用法及代码示例
- Python SciPy mstats.mquantiles用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.io.matlab.loadmat。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。