小白教程
所有教程
关于
Search
172.70.131.191
172.70.131.191
参数设置
贡献
退出
操作
编辑
移动
保护
信息
历史
删除
查看“SciPy Matlab 数组”的源代码
本页内容
上一节:
SciPy_空间数据
下一节:
SciPy_插值
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{DISPLAYTITLE:SciPy Matlab 数组}}[[Category:SciPy 教程|9]] = SciPy Matlab 数组 = NumPy 提供了 Python 可读格式的数据保存方法。 SciPy 提供了与 Matlab 的交互的方法。 SciPy 的 scipy.io 模块提供了很多函数来处理 Matlab 的数组。 === 以 Matlab 格式导出数据 === '''savemat()''' 方法可以导出 Matlab 格式的数据。 该方法参数有: * '''filename''' - 保存数据的文件名。 * '''mdict''' - 包含数据的字典。 * '''do_compression''' - 布尔值,指定结果数据是否压缩。默认为 False。 将数组作为变量 "vec" 导出到 mat 文件: <sample title="" desc="" lang="python" hererun="1"> from scipy import io import numpy as np arr = np.arange(10) io.savemat('arr.mat', {"vec": arr}) </sample> '''注意:'''上面的代码会在您的计算机上保存了一个名为 "arr.mat" 的文件。 === 导入 Matlab 格式数据 === loadmat() 方法可以导入 Matlab 格式数据。 该方法参数: * '''filename''' - 保存数据的文件名。 返回一个结构化数组,其键是变量名,对应的值是变量值。 以下实例从 mat 文件中导入数组: <sample title="" desc="" lang="python" hererun="1"> 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) </sample> 返回结果如下: <sample title="" desc="" lang="python" hererun="1"> { '__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]]) } </sample> 使用变量名 "vec" 只显示 matlab 数据的数组: <sample title="" desc="" lang="python" hererun="1"> 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['vec']) </sample> 返回结果如下: <sample title="" desc="" lang="python" hererun="1"> [[0 1 2 3 4 5 6 7 8 9]] </sample> 从结果可以看出数组最初是一维的,但在提取时它增加了一个维度,变成了二维数组。 解决这个问题可以传递一个额外的参数 squeeze_me=True: <sample title="" desc="" lang="python" hererun="1"> 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', squeeze_me=True) print(mydata['vec']) </sample> 返回结果如下: <sample title="" desc="" lang="python" hererun="1"> [0 1 2 3 4 5 6 7 8 9] </sample>
返回至“
SciPy Matlab 数组
”。
上一节:
SciPy_空间数据
下一节:
SciPy_插值