Python使用h5py读取Matlab .mat文件并提取字符串值

Dylan
Dylan
发布时间:2026-10-11| 7人浏览过
原创

Matlab默认的数据保存格式为.mat文件,在Python环境中处理此类数据时,通常使用h5py库进行读取。由于.mat文件基于HDF5格式,其中的字符串往往以对象引用(Object Reference)的形式存储。本文详细演示了如何读取.mat文件,并通过索引和类型转换提取其中的字符串值。

使用h5py读取.mat文件

在Python中,可以通过导入 h5py 库来打开并读取 .mat 文件。以下是读取文件并访问内部数据集的基本步骤:

import h5py

# 打开.mat文件
data = h5py.File("**.mat")

# 访问指定路径的数据集(例如 'digitStruct/name')
test = data["digitStruct/name"]

执行上述代码后,test 变量将返回一个 HDF5 数据集对象,其结构通常显示为类似 <HDF5 dataset "name": shape (13068, 1), type "|O"> 的形式。这里的 type "|O" 表示数据元素是对象引用(Object Reference)类型,而非直接的字符串。

提取并转换字符串值

由于数据集中存储的是引用,需要进一步通过索引获取具体的引用对象,再根据该引用找到对应的数据块,最后将其转换为可读的字符串。具体操作如下:

  1. 获取引用对象:通过索引 [0][0] 获取第一个元素的引用。
  2. 解析引用:利用获取到的引用在根数据集 data 中找到实际的数据集。
  3. 转换字符串:将数据集的内容转换为字符列表,并拼接成字符串。
# 获取第一个元素的引用
st = test[0][0]  # 结果类似: <HDF5 object reference>

# 通过引用找到实际的数据集
obj = data[st]   # 结果类似: <HDF5 dataset "b": shape (5, 1), type "<u2">

# 将数据集中的字节/整数转换为字符串
str_val = "".join(chr(i) for i in obj[:])

# 输出结果
print(str_val)

通过上述步骤,即可成功将 .mat 文件中的引用型字符串数据(如 '1.png')提取并在 Python 中显示。需要注意的是,处理不同结构的 .mat 文件时,数据集的路径和形状可能会有所不同,需根据实际情况调整索引方式。

以上就是Python第三方库h5py读取mat文件并显示值的详细内容,更多关于Python读取mat文件的方法资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。