Python中使用scipy.io读取和保存MATLAB mat文件详解
本文介绍如何在Python中处理MATLAB生成的mat文件。通过scipy.io模块的loadmat()函数读取数据,返回字典类型,提取矩阵后为numpy.ndarray格式;使用savemat()函数将字典数据保存为新mat文件,实现Python与MATLAB间的数据交互。
首先讨论Markdown编辑器的使用体验。对于熟悉LaTeX的用户来说,Markdown上手相对容易,但在实际编辑过程中仍存在几个尚未找到确切解决方案的问题。
首先是图片尺寸调整问题。在LaTeX中可以灵活调整图片大小以适配文本布局,而Markdown中缺乏类似的字体和字号精细设置功能。虽然标题字体较大,但正文内容显得过小,整体排版风格并不符合所有用户的审美偏好。
上述两个主要问题导致最终生成的文本视觉效果不够理想。
一、mat文件基础
mat数据格式是Matlab数据存储的标准格式。在Matlab环境中,通常使用load()函数导入mat文件,使用save()函数保存mat文件。

load('data.mat')
save('data_1.mat','A')
其中,'A'表示需要保存的具体内容变量。

二、Python中读取mat文件
在Python环境中,可以使用scipy.io模块中的loadmat()函数来读取mat文件,同时使用savemat()函数来保存文件。
1、读取文件操作
参考上述示例代码进行文件读取。
#coding:UTF-8 ''' Created on 2015年5月12日 @author: zhaozhiyong ''' import scipy.io as scio dataFile = 'E://data.mat' data = scio.loadmat(dataFile)
需要注意,读取返回的data变量是字典格式,可以通过type(data)函数查看其类型。
print type(data)
运行结果显示
<type 'dict'>
接下来定位mat文件中的具体矩阵数据。
print data['A']
打印结果显示
[[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 。。。。。。。。。。。 0. 0. 0. 0. 0. 0. 0. 0.36470588 0.90196078 0.99215686 0.99607843 0.99215686 0.99215686 0.78431373 0.0627451 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 。。。。。。。。。。。。 0.94117647 0.22745098 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.30196078 。。。。。。。 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ]]
其数据类型格式为:
<type 'numpy.ndarray'>
即numpy库中的矩阵格式(numpy.ndarray)。
2、保存文件操作
将上述data字典中的'A'矩阵重新保存到一个名为dataNew.mat的新文件中。
dataNew = 'E://dataNew.mat'
scio.savemat(dataNew, {'A':data['A']})
注意:保存时需以字典形式传递数据。
本文关于Python读取和保存mat文件的方法介绍至此结束,更多相关Python读取和保存mat内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













