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 相关文章推荐
2款Python内存检测工具介绍和使用方法
Jun 01 Python
详解Python字符串对象的实现
Dec 24 Python
利用python模拟实现POST请求提交图片的方法
Jul 25 Python
详解Python中的四种队列
May 21 Python
关于python下cv.waitKey无响应的原因及解决方法
Jan 10 Python
Python创建字典的八种方式
Feb 27 Python
pytorch中图像的数据格式实例
Feb 11 Python
Python如何使用队列方式实现多线程爬虫
May 12 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
Jun 01 Python
Python数据相关系数矩阵和热力图轻松实现教程
Jun 16 Python
python查询MySQL将数据写入Excel
Oct 29 Python
基于Django快速集成Echarts代码示例
Dec 01 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加密解密的代码
2007/07/16 PHP
php实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
Linux系统中为php添加pcntl扩展
2016/08/28 PHP
你的 mixin 真的兼容 ECMAScript 5 吗?
2013/04/11 Javascript
jquery中交替点击事件toggle方法的使用示例
2013/12/08 Javascript
JavaScript程序设计之JS调试
2015/12/09 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
angular.js实现购物车功能
2017/10/23 Javascript
jquery实现楼层滚动效果
2018/01/01 jQuery
vue elementui form表单验证的实现
2018/11/11 Javascript
python实现爬虫下载漫画示例
2014/02/16 Python
python批量修改文件名的实现代码
2014/09/01 Python
Python作用域用法实例详解
2016/03/15 Python
解决python xlrd无法读取excel文件的问题
2018/12/25 Python
Python3.5基础之NumPy模块的使用图文与实例详解
2019/04/24 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
2019/10/25 Python
Python实现图片批量加入水印代码实例
2019/11/30 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
Jupyter notebook运行Spark+Scala教程
2020/04/10 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
HTML5使用drawImage()方法绘制图像
2014/06/23 HTML / CSS
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
应届生船舶驾驶求职信
2013/10/19 职场文书
管理站站长岗位职责
2013/11/27 职场文书
会展中心部门工作职责
2013/11/27 职场文书
服装公司总经理岗位职责
2013/11/30 职场文书
小摄影师教学反思
2014/04/27 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
基层党员干部四风问题整改方向和措施
2014/09/25 职场文书
个人师德师风自我剖析材料
2014/09/29 职场文书
2014年市场部工作总结
2014/11/25 职场文书
兵马俑的导游词
2015/02/02 职场文书
行政处罚告知书
2015/07/01 职场文书
2015秋季开学典礼致辞
2015/07/16 职场文书
教师听课学习心得体会
2016/01/15 职场文书