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 流程控制实例代码
Sep 25 Python
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
May 09 Python
python获取文件扩展名的方法
Jul 06 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
May 18 Python
Django进阶之CSRF的解决
Aug 01 Python
使用GitHub和Python实现持续部署的方法
May 09 Python
python3.6+selenium实现操作Frame中的页面元素
Jul 16 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
Feb 03 Python
基于Python实现人脸自动戴口罩系统
Feb 06 Python
Python爬虫基础初探selenium
May 31 Python
Python Django模型详解
Oct 05 Python
Python可视化神器pyecharts绘制地理图表
Jul 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
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
PHP Class&Object -- 解析PHP实现二叉树
2013/06/25 PHP
PHP 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间
2014/06/12 PHP
ThinkPHP中U方法的使用浅析
2014/06/13 PHP
PHP使用ob_start生成html页面的方法
2014/11/07 PHP
PHP实现RTX发送消息提醒的实例代码
2017/01/03 PHP
escape、encodeURI 和 encodeURIComponent 的区别
2009/03/02 Javascript
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
jQuery图片预加载 等比缩放实现代码
2011/10/04 Javascript
iframe子父页面调用js函数示例
2013/11/07 Javascript
JavaScript实现更改网页背景与字体颜色的方法
2015/02/02 Javascript
浅谈jQuery的offset()方法及示例分享
2015/07/17 Javascript
JavaScript判断对象是否为数组
2015/12/22 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
jQuery实现底部浮动窗口效果
2016/09/07 Javascript
详解webpack 如何集成第三方js库
2017/06/29 Javascript
利用ES6的Promise.all实现至少请求多长时间的实例
2017/08/28 Javascript
原生JS封装animate运动框架的实例
2017/10/12 Javascript
vue中的watch监听数据变化及watch中各属性的详解
2018/09/11 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
小程序中的箭头函数的具体使用
2020/06/19 Javascript
[02:04]2020年夜魇暗潮预告片
2020/10/30 DOTA
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
Win10 安装PyCharm2019.1.1(图文教程)
2019/09/29 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
Python中断多重循环的几种方式详解
2020/02/10 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
PyTorch的torch.cat用法
2020/06/28 Python
css3 响应式媒体查询的示例代码
2019/09/25 HTML / CSS
详解html5 postMessage解决跨域通信的问题
2018/08/17 HTML / CSS
德国珠宝和配件商店:Styleserver
2021/02/23 全球购物
PHP如何删除一个Cookie值
2012/11/15 面试题
必须要使用游标的SQL语句有那些
2012/05/07 面试题
献爱心标语
2014/06/21 职场文书
机关作风建设自查报告
2014/10/22 职场文书
车间主任岗位职责范本
2015/04/08 职场文书