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中类和实例如何绑定属性与方法示例详解
Aug 18 Python
Python设计模式之迭代器模式原理与用法实例分析
Jan 10 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
Jul 22 Python
python采集百度搜索结果带有特定URL的链接代码实例
Aug 30 Python
wxPython实现绘图小例子
Nov 19 Python
python 通过视频url获取视频的宽高方式
Dec 10 Python
使用Python实现Wake On Lan远程开机功能
Jan 22 Python
python通用读取vcf文件的类(复制粘贴即可用)
Feb 29 Python
python3 使用traceback定位异常实例
Mar 09 Python
Python批量将图片灰度化的实现代码
Apr 11 Python
python pyg2plot的原理知识点总结
Feb 28 Python
Python中使用subprocess库创建附加进程
May 11 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下关于Cannot use a scalar value as an array的解决办法
2010/08/08 PHP
php模板函数 正则实现代码
2012/10/15 PHP
基于php缓存的详解
2013/05/15 PHP
PHP下载文件的函数实例代码
2016/05/18 PHP
JavaScript NodeTree导航栏(菜单项JSON类型/自制)
2013/02/01 Javascript
js验证是否为数字的总结
2013/04/14 Javascript
JS 按钮点击触发(兼容IE、火狐)
2013/08/07 Javascript
JavaScript内存管理介绍
2015/03/13 Javascript
javascript设计模式--策略模式之输入验证
2015/11/27 Javascript
修改js confirm alert 提示框文字的简单实例
2016/06/10 Javascript
jQuery ztree实现动态树形多选菜单
2016/08/12 Javascript
JavaScript数组去重由慢到快由繁到简(优化篇)
2016/08/26 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
利用node.js本地搭建HTTP服务器
2017/04/19 Javascript
vue表单绑定实现多选框和下拉列表的实例
2017/08/12 Javascript
Nodejs调用WebService的示例代码
2017/09/29 NodeJs
vue中如何去掉空格的方法实现
2018/11/09 Javascript
[26:40]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第一局
2016/02/25 DOTA
Python 的类、继承和多态详解
2017/07/16 Python
Python代码实现删除一个list里面重复元素的方法
2019/04/02 Python
Python Django框架模板渲染功能示例
2019/11/08 Python
python实现代码审查自动回复消息
2021/02/01 Python
米兰网婚纱礼服法国网上商店:Milanoo法国
2016/08/20 全球购物
英国在线玫瑰专家:InterRose
2019/12/01 全球购物
Weblogic的布署方式
2013/08/23 面试题
电子工程求职信
2014/07/17 职场文书
幼儿园大班开学寄语
2014/08/02 职场文书
竞选大队干部演讲稿
2014/09/11 职场文书
2015年幼儿园新年寄语
2014/12/08 职场文书
城管个人总结
2015/02/28 职场文书
财务总监岗位职责范本
2015/04/03 职场文书
《我要的是葫芦》教学反思
2016/02/18 职场文书
Spring Bean是如何初始化的详解
2022/03/22 Java/Android
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
2022/04/29 Servers
使用Postman测试需要授权的接口问题
2022/06/21 Java/Android