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 18 Python
Python处理字符串之isspace()方法的使用
May 19 Python
详解Python验证码识别
Jan 25 Python
Python模拟用户登录验证
Sep 11 Python
python爬虫爬取淘宝商品信息(selenum+phontomjs)
Feb 24 Python
Python应用库大全总结
May 30 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
Apr 04 Python
python3.7 使用pymssql往sqlserver插入数据的方法
Jul 08 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
Aug 13 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
Apr 28 Python
python switch 实现多分支选择功能
Dec 21 Python
用Python可视化新冠疫情数据
Jan 18 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运行模式的深入理解
2013/06/03 PHP
php实现模拟登陆方正教务系统抓取课表
2015/05/19 PHP
使两个iframe的高度与内容自适应,且相等
2006/11/20 Javascript
toggle一个div显示或隐藏且可扩展成自定义下拉框
2013/09/12 Javascript
js call方法详细介绍(js 的继承)
2013/11/18 Javascript
jquery ajax 简单范例(界面+后台)
2013/11/19 Javascript
JS常用字符串处理方法应用总结
2014/05/22 Javascript
JS实现两表格里数据来回转移的方法
2015/05/28 Javascript
JavaScript实现简单的tab选项卡切换
2016/01/05 Javascript
jQuery flip插件实现的翻牌效果示例【附demo源码下载】
2016/09/20 Javascript
JavaScript闭包和范围实例详解
2016/12/19 Javascript
jquery+css实现侧边导航栏效果
2017/06/12 jQuery
浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题
2017/09/02 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
angular使用md5,CryptoJS des加密的方法
2019/06/03 Javascript
使用zrender.js绘制体温单效果
2019/10/31 Javascript
vue 实现购物车总价计算
2019/11/06 Javascript
使用vue实现HTML页面生成图片的方法
2020/03/12 Javascript
js实现飞机大战游戏
2020/08/26 Javascript
python使用mailbox打印电子邮件的方法
2015/04/30 Python
详解Python 序列化Serialize 和 反序列化Deserialize
2017/08/20 Python
python验证码识别实例代码
2018/02/03 Python
python发送邮件脚本
2018/05/22 Python
使用python爬虫获取黄金价格的核心代码
2018/06/13 Python
Python生命游戏实现原理及过程解析(附源代码)
2019/08/01 Python
python中with用法讲解
2020/02/07 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
2020/03/06 Python
美国最好的钓鱼、狩猎和划船装备商店:Bass Pro Shops
2018/12/02 全球购物
美国转售二手商品的电子商务平台:BLINQ
2018/12/13 全球购物
网络方面基础面试题
2012/11/16 面试题
更夫岗位责任制
2014/02/11 职场文书
房产继承公证书
2014/04/09 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
python学习之panda数据分析核心支持库
2021/05/07 Python
react合成事件与原生事件的相关理解
2021/05/13 Javascript
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript