SciPy 教程

浏览5839
更新时间2025-08-14

使用 Matlab 数组

我们知道 NumPy 为我们提供了以 Python 可读格式保存数据的方法。但 SciPy 也为我们提供了与 Matlab 的互操作性。

SciPy 提供了 scipy.io 模块,其中包含用于处理 Matlab 数组的函数。

以 Matlab 格式导出数据

savemat() 函数允许我们以 Matlab 格式导出数据。

该方法接受以下参数:

  1. filename - 用于保存数据的文件名。
  2. mdict - 包含数据的字典。
  3. do_compression - 一个布尔值,指定是否压缩结果。默认为 False。

实例

将以下数组作为变量名 "vec" 导出到 mat 文件:

from scipy import io
import numpy as np

arr = np.arange(10)

io.savemat('arr.mat', {"vec": arr})

注意:上面的示例会在您的计算机上保存一个名为 "arr.mat" 的文件。

要打开文件,请查看下面的 "从 Matlab 格式导入数据" 实例:

从 Matlab 格式导入数据

loadmat() 函数允许我们从 Matlab 文件中导入数据。

该函数接受一个必需的参数:

filename - 保存数据的文件名。

它将返回一个结构化数组,其键是变量名,对应的值是变量值。

实例

从以下 mat 文件中导入数组:

from scipy import io
import numpy as np

arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9,])

# 导出:
io.savemat('arr.mat', {"vec": arr})

# 导入:
mydata = io.loadmat('arr.mat')

print(mydata)

结果:

{
 '__header__': b'MATLAB 5.0 MAT-file Platform: nt, Created on: Tue Sep 22 13:12:32 2020',
 '__version__': '1.0',
 '__globals__': [],
 'vec': array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]])
}

使用变量名 "vec" 仅显示 matlab 数据中的数组:

实例

...

print(mydata['vec'])

结果:

[[0 1 2 3 4 5 6 7 8 9]]

注意:我们可以看到数组最初是一维的,但在提取时它增加了一维。

为了解决这个问题,我们可以传递一个额外的参数 squeeze_me=True

实例

# 导入:
mydata = io.loadmat('arr.mat', squeeze_me=True)

print(mydata['vec'])

结果:

[0 1 2 3 4 5 6 7 8 9]

相关视频

更多

免费

phpStudy极速入门视频教程
初级phpStudy极速入门视频教程

535906次学习

收藏

免费

Midjourney基础课程
初级Midjourney基础课程

13367次学习

收藏

免费

极客学院Git使用视频教程
初级极客学院Git使用视频教程

48353次学习

收藏

免费

尚观shell视频教程
高级尚观shell视频教程

16864次学习

收藏

免费

尚观Linux入门视频教程
初级尚观Linux入门视频教程

46713次学习

收藏
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号