首页 > 解决方案 > 如何将 Python 1D、2D 或 3D NumpPy 数组保存到 MATLAB .mat

问题描述

Python 的 SciPy 包具有将 Python 变量保存到 MATLAB.mat文件 中的函数https://docs.scipy.org/doc/scipy/reference/generated/scipy.io.savemat.html 但是,文档缺少示例,我没有知道它想要作为输入的变量字典是什么。

假设我有一个 2D NumPy 数组A和一个 3D NumPy 数组B,我如何将它们保存到一个.mat名为的文件中my_arrays.mat

我可以保存多个变量.mat还是每个变量都需要一个文件?

如何将.mat文件读入 Python 以及如何知道如何访问它们已加载的变量?

标签: pythonarraysmatlabfile-ioscipy

解决方案


保存和加载示例

import scipy.io as sio

# dummy data
A = np.random.randint(0,10,100)
B = np.random.randint(0,10,100)

# collect arrays in dictionary
savedict = {
    'A' : A,
    'B' : B,
}

# save to disk
sio.savemat('my_arrays.mat', savedict)

#load from disk
data = sio.loadmat('my_arrays.mat')

# alternative way to load from disk:
data = {}
sio.loadmat('my_arrays.mat', mdict=data)

推荐阅读