在 Python 中读取 Matlab mat 文件

Manav Narula 2023年1月30日 2021年4月29日
  1. 在 Python 中使用 scipy.io 模块读取 .mat 文件
  2. 在 Python 中使用 NumPy 模块读取 mat 文件
  3. 在 Python 中使用 mat4py 模块读取 mat 文件
  4. 在 Python 中使用 matlab.engine 模块读取 mat 文件
在 Python 中读取 Matlab mat 文件

MATLAB 是一个编程平台,如今已广泛用于数值计算,统计分析和生成算法。它是一种非常灵活的语言,使我们能够将我们的工作与不同的编程语言(例如 Python)集成在一起。

MATLAB 工作空间将其所有变量和内容保存在 mat 文件中。在本教程中,我们将学习如何在 Python 中打开和读取 mat 文件。

在 Python 中使用 scipy.io 模块读取 .mat 文件

scipy.io 模块具有 loadmat() 函数,可以打开和读取 mat 文件。以下代码显示了如何使用此函数。

import scipy.io
mat = scipy.io.loadmat('file.mat') 

请注意,此方法不适用于 7.3 以下的 MATLAB 版本。为了避免这种情况,我们可以使用下面的命令在较低版本中保存 mat 文件。

save('test.mat', '-v7')

在 Python 中使用 NumPy 模块读取 mat 文件

前面已经讨论了如何使用 Python 中的 scipy.io 模块无法打开 7.3 版本的 MATLAB 文件。值得注意的是,版本 7.3 及更高版本中的文件是 hdf5 数据集,这意味着我们可以使用 NumPy 库打开它们。为了使这种方法起作用,需要安装 h5py 模块,这在你的系统上需要 HDF5。

下面的代码显示了如何使用此方法读取 mat 文件。

import numpy as np
import h5py
f = h5py.File('somefile.mat','r')
data = f.get('data/variable1')
data = np.array(data) # For converting to a NumPy array

在 Python 中使用 mat4py 模块读取 mat 文件

该模块具有允许我们在 MATLAB 文件中读写数据的函数。

loadmat() 函数读取 MATLAB 文件并将其存储在基本的 Python 结构(如列表或字典)中,类似于 scipy.io 中的 loadmat()

例如,

from mat4py import loadmat

data = loadmat('example.mat')

在 Python 中使用 matlab.engine 模块读取 mat 文件

对于已经拥有 MATLAB 的用户,可以使用 MathWorks 本身提供的 matlab.engine。它具有许多功能,不仅可以读取和写入.mat 文件,还可以扩展到更多功能。

以下代码显示了如何使用此方法读取 MATLAB 文件。

import matlab.engine
eng = matlab.engine.start_matlab()
content = eng.load("example.mat", nargout=1)
Author: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn