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 相关文章推荐
详解Python3中字符串中的数字提取方法
Jan 14 Python
python cx_Oracle的基础使用方法(连接和增删改查)
Nov 19 Python
Python实现邮件的批量发送的示例代码
Jan 23 Python
Python3.6.0+opencv3.3.0人脸检测示例
May 25 Python
浅谈DataFrame和SparkSql取值误区
Jun 09 Python
Python读取mat文件,并转为csv文件的实例
Jul 04 Python
python斐波那契数列的计算方法
Sep 27 Python
Django中更改默认数据库为mysql的方法示例
Dec 05 Python
python+mysql实现学生信息查询系统
Feb 21 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
Nov 11 Python
pyinstaller打包单文件时--uac-admin选项不起作用怎么办
Apr 15 Python
python爬取股票最新数据并用excel绘制树状图的示例
Mar 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网页病毒清除类
2014/12/08 PHP
php随机生成数字字母组合的方法
2015/03/18 PHP
jQuery+PHP实现图片上传并提交功能
2020/07/27 PHP
javascript innerHTML、outerHTML、innerText、outerText的区别
2008/11/24 Javascript
禁止你的左键复制实用技巧
2013/01/04 Javascript
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
2016/02/25 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
JS中常用的正则表达式
2016/09/29 Javascript
Servlet实现文件上传,可多文件上传示例
2016/12/05 Javascript
浅谈JavaScript的函数及作用域
2016/12/30 Javascript
servlet+jquery实现文件上传进度条示例代码
2017/01/25 Javascript
Angular2使用jQuery的方法教程
2017/05/28 jQuery
微信小程序 自定义Toast实例代码
2017/06/12 Javascript
JS库之wow.js使用方法
2017/09/14 Javascript
浅谈vue-router 路由传参的方法
2017/12/27 Javascript
Elasticsearch实现复合查询高亮结果功能
2019/09/10 Javascript
详解如何使用React Hooks请求数据并渲染
2020/10/18 Javascript
Python代码调试的几种方法总结
2015/04/15 Python
在Python中处理时间之clock()方法的使用
2015/05/22 Python
Python 模拟购物车的实例讲解
2017/09/11 Python
小白如何入门Python? 制作一个网站为例
2018/03/06 Python
python 字典中取值的两种方法小结
2018/08/02 Python
简单了解django索引的相关知识
2019/07/17 Python
Django使用Profile扩展User模块方式
2020/05/14 Python
matplotlib 多个图像共用一个colorbar的实现示例
2020/09/10 Python
Booking.com德国:预订最好的酒店和住宿
2020/02/16 全球购物
2014年大学生就业规划书
2014/04/04 职场文书
网页美工求职信范文
2014/04/17 职场文书
结婚保证书范文
2014/04/29 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
ktv服务员岗位职责
2015/02/09 职场文书
老公出轨后的保证书
2015/05/08 职场文书
2015年外贸业务员工作总结范文
2015/05/23 职场文书
2016年寒假社会实践活动心得体会
2015/10/09 职场文书
Redis缓存-序列化对象存储乱码问题的解决
2021/06/21 Redis