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随机生成指定长度密码的方法
Apr 04 Python
在Python中使用mongoengine操作MongoDB教程
Apr 24 Python
python使用xlrd模块读写Excel文件的方法
May 06 Python
Python cookbook(数据结构与算法)字典相关计算问题示例
Feb 18 Python
Python实现将数据写入netCDF4中的方法示例
Aug 30 Python
Python中的取模运算方法
Nov 10 Python
Django基础三之视图函数的使用方法
Jul 18 Python
Django上使用数据可视化利器Bokeh解析
Jul 31 Python
DataFrame.to_excel多次写入不同Sheet的实例
Dec 02 Python
Python批量将图片灰度化的实现代码
Apr 11 Python
详解Pycharm第三方库的安装及使用方法
Dec 29 Python
python pillow库的基础使用教程
Jan 13 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 @ at 记号的作用示例介绍
2014/10/10 PHP
php中判断数组相等的方法以及数组运算符介绍
2015/03/30 PHP
详解PHP数组赋值方法
2015/11/07 PHP
php简单实现文件或图片强制下载的方法
2016/12/06 PHP
cakephp常见知识点汇总
2017/02/24 PHP
Ajax+PHP实现的模拟进度条功能示例
2019/02/11 PHP
Js组件的一些写法
2010/09/10 Javascript
javascript dom追加内容实现示例
2013/09/21 Javascript
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
Javascript实现飞动广告效果的方法
2015/05/25 Javascript
AngularJS 2.0入门权威指南
2016/10/08 Javascript
js以分隔符分隔数组中的元素并转换为字符串的方法
2016/11/16 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
2016/12/05 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
2017/01/18 Javascript
关于Vue实现组件信息的缓存问题
2017/08/23 Javascript
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
2020/03/12 Javascript
[02:51]2014DOTA2 TI小组赛总结中国军团全部进军钥匙球馆
2014/07/15 DOTA
Python pickle类库介绍(对象序列化和反序列化)
2014/11/21 Python
python实现登陆知乎获得个人收藏并保存为word文件
2015/03/16 Python
python通过pil将图片转换成黑白效果的方法
2015/03/16 Python
在Linux中通过Python脚本访问mdb数据库的方法
2015/05/06 Python
Python中常用操作字符串的函数与方法总结
2016/02/04 Python
如何在python字符串中输入纯粹的{}
2018/08/22 Python
Python判断一个三位数是否为水仙花数的示例
2018/11/13 Python
python算法题 链表反转详解
2019/07/02 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
2020/04/17 Python
Python如何创建装饰器时保留函数元信息
2020/08/07 Python
CSS3 3D立方体效果示例-transform也不过如此
2016/12/05 HTML / CSS
CSS实现定位元素居中的方法
2015/06/23 HTML / CSS
优秀毕业生推荐信
2013/11/02 职场文书
医院竞聘演讲稿
2014/05/16 职场文书
群众路线教育实践活动整改方案(个人版)
2014/10/25 职场文书
2015年推广普通话演讲稿
2015/03/20 职场文书
Vue实现动态查询规则生成组件
2021/05/27 Vue.js
php解析非标准json、非规范json的方式实例
2022/05/10 PHP