python读取并写入mat文件的方法


Posted in Python onJuly 12, 2019

先给大家介绍下python读取并写入mat文件的方法

用matlab生成一个示例mat文件:

clear;clc
matrix1 = magic(5);
matrix2 = magic(6);
save matData.mat

用python3读取并写入mat文件:

import scipy.io
data = scipy.io.loadmat('matData.mat') # 读取mat文件
# print(data.keys())  # 查看mat文件中的所有变量
print(data['matrix1'])
print(data['matrix2'])
matrix1 = data['matrix1'] 
matrix2 = data['matrix2']
print(matrix1)
print(matrix2)
scipy.io.savemat('matData2.mat',{'matrix1':matrix1, 'matrix2':matrix2}) # 写入mat文件

ps:python读取matlab写的mat文件问题以及解决办法

最近项目中需要在python下读取mat文件,遇到以下问题:

1、当数据集大小大于2GB的时候,Python就不能正确读取mat文件了。同时matlab也不能保存相应的文件,只能以 -V7.3的形式保存。具体如下:

#利用h5py读取-v7.3的.mat文件:
import h5py
dict_data = h5py.File('***.mat')  #在Python中读取的.mat为字典格式
array_data = dict_data['array_name'] 
#其中的array_name为在保存为.mat之前的真正变量名,如 MATLAB命令:save ***.mat array_name -v7.3

2、当文件以h5py写入时,最终会出现python读取到的和matlab写入的数据维度不相同的问题。比如写入的是(1000,128,128,3)但是python读取到的维度就是(128,128,3,1000)。所以需要对python读取到的文件进行转置的处理。具体如下:

data_train = h5py.File('train_order6.mat','r')
input_train = data_train['z_wrap']
input_train = np.transpose(input_train,(0,2,1)) #The shape is changed to be consistent with tensoflow [25000,128,128]->[25000,128,128]
input_train = np.expand_dims(input_train,axis=3) #[25000,128,128]->[25000,128,128,1]
label_train = data_train['z_allRegion']
label_train = np.transpose(label_train,(0,3,2,1))#The shape is changed to be consistent with tensoflow [25000,11,128,128]->[25000,128,128,11]

一般都是第一维度和最后一个维度错误,所以都是(0,3,2,1)的形式,不过为了确保正确还是建议在读取的时候显示一下图片。

3、可以在用matlab存储时,提前permute一下,python正常读取,或者matlab正常存储,python读取后transpose一下。步骤2就是matlab正常存储,python读取后transpose.

总结

以上所述是小编给大家介绍的python读取并写入mat文件的方法 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python中用于检查英文字母大写的isupper()方法
May 19 Python
Python变量和字符串详解
Apr 29 Python
完美解决Python 2.7不能正常使用pip install的问题
Jun 12 Python
解决Python下json.loads()中文字符出错的问题
Dec 19 Python
对Python中DataFrame选择某列值为XX的行实例详解
Jan 29 Python
python可视化爬虫界面之天气查询
Jul 03 Python
Python selenium的基本使用方法分析
Dec 21 Python
Python json模块与jsonpath模块区别详解
Mar 05 Python
Python如何对XML 解析
Jun 28 Python
python super()函数的基本使用
Sep 10 Python
python实现网页录音效果
Oct 26 Python
python 通过 pybind11 使用Eigen加速代码的步骤
Dec 07 Python
numpy数组广播的机制
Jul 12 #Python
Python的numpy库下的几个小函数的用法(小结)
Jul 12 #Python
python读取.mat文件的数据及实例代码
Jul 12 #Python
如何用Python破解wifi密码过程详解
Jul 12 #Python
python pip源配置,pip配置文件存放位置的方法
Jul 12 #Python
Python3 itchat实现微信定时发送群消息的实例代码
Jul 12 #Python
flask应用部署到服务器的方法
Jul 12 #Python
You might like
PHP 存取 MySQL 数据库的一个例子
2006/10/09 PHP
php以post形式发送xml的方法
2014/11/04 PHP
php 数组随机取值的简单实例
2016/05/23 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
php 运算符与表达式详细介绍
2016/11/30 PHP
PHP 超级全局变量相关总结
2020/06/30 PHP
document.open() 与 document.write()的区别
2007/08/13 Javascript
HTML中Select不用Disabled实现ReadOnly的效果
2008/04/07 Javascript
DOM Scripting中的图片切换[兼容Firefox]
2010/06/12 Javascript
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
2011/10/22 Javascript
js String对象中常用方法小结(字符串操作)
2012/01/27 Javascript
使用PHP+JQuery+Ajax分页的实现
2013/04/23 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
详解jQuery向动态生成的内容添加事件响应jQuery live()方法
2015/11/02 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
2016/11/29 Javascript
详解angularJs中关于ng-class的三种使用方式说明
2017/06/02 Javascript
vue-router启用history模式下的开发及非根目录部署方法
2018/12/23 Javascript
JavaScript实现捕获鼠标坐标
2020/04/12 Javascript
小程序自动化测试的示例代码
2020/08/11 Javascript
Python中装饰器的一个妙用
2015/02/08 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
2018/01/24 Python
Python实现图片尺寸缩放脚本
2018/03/10 Python
python 输出所有大小写字母的方法
2019/01/02 Python
pandas的qcut()方法详解
2019/07/06 Python
如何在Win10系统使用Python3连接Hive
2020/10/15 Python
html5拖曳操作 HTML5实现网页元素的拖放操作
2013/01/02 HTML / CSS
法国家具及室内配件店:home24
2017/01/21 全球购物
全球异乡人的跨境社交电商平台:Kouhigh口嗨网
2020/07/24 全球购物
伦敦鲜花递送:Flower Station
2021/02/03 全球购物
追悼会上的答谢词
2014/01/10 职场文书
班级课外活动总结
2014/07/09 职场文书
2014年党员评议表自我评价
2014/09/27 职场文书
出国签证在职证明范本
2014/11/24 职场文书
暑假开始了,你的暑假学习计划写好了吗?
2019/07/04 职场文书
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫
python可视化分析绘制带趋势线的散点图和边缘直方图
2022/06/25 Python