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的collections模块中defaultdict类型的用法
Jul 07 Python
Python用Pillow(PIL)进行简单的图像操作方法
Jul 07 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
Feb 26 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
Apr 22 Python
Django 使用Ajax进行前后台交互的示例讲解
May 28 Python
python调用百度语音识别实现大音频文件语音识别功能
Aug 30 Python
python样条插值的实现代码
Dec 17 Python
关于阿里云oss获取sts凭证 app直传 python的实例
Aug 20 Python
pytorch载入预训练模型后,实现训练指定层
Jan 06 Python
Python range与enumerate函数区别解析
Feb 28 Python
Python使用configparser读取ini配置文件
May 25 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
Dec 03 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读取EXCEL文件 php excelreader读取excel文件
2012/12/06 PHP
php写入数据到CSV文件的方法
2015/03/14 PHP
php字符串按照单词进行反转的方法
2015/03/14 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
2008/09/08 Javascript
js获取图片长和宽度的代码
2009/11/24 Javascript
AspNet中使用JQuery上传插件Uploadify详解
2015/05/20 Javascript
基于jQuery通过jQuery.form.js插件使用ajax提交form表单
2015/08/17 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
pc加载更多功能和移动端下拉刷新加载数据
2016/11/07 Javascript
实例解析jQuery中如何取消后续执行内容
2016/12/01 Javascript
js实现仿购物车加减效果
2017/03/01 Javascript
详解vue 模拟后台数据(加载本地json文件)调试
2017/08/25 Javascript
微信小程序使用radio显示单选项功能【附源码下载】
2017/12/11 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
2019/10/30 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
2020/11/05 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
vue 中this.$set 动态绑定数据的案例讲解
2021/01/29 Vue.js
Python中operator模块的操作符使用示例总结
2016/06/28 Python
Python基于回溯法解决01背包问题实例
2017/12/06 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
python并发爬虫实用工具tomorrow实用解析
2019/09/25 Python
Python实现爬取并分析电商评论
2020/06/19 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
2021/02/07 Python
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
俄罗斯三星品牌商店:GalaxyStore
2020/11/04 全球购物
五一手机促销方案
2014/03/08 职场文书
学习十八大坚定理想信念心得体会
2014/03/11 职场文书
幼儿园新年寄语
2014/04/03 职场文书
中国梦团日活动总结
2014/07/07 职场文书
老干部工作汇报材料
2014/10/28 职场文书
2014年校务公开工作总结
2014/12/18 职场文书
2015年女职工工作总结
2015/05/15 职场文书
格林童话读书笔记
2015/06/30 职场文书
委托开发合同书(标准版)
2019/08/07 职场文书