在 Python 中读取 Matlab mat 文件
-
在 Python 中使用
scipy.io
模块读取.mat
文件 -
在 Python 中使用
NumPy
模块读取mat
文件 -
在 Python 中使用
mat4py
模块读取mat
文件 -
在 Python 中使用
matlab.engine
模块读取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)
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