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系列之从文件读取和保存数据
May 23 Python
Python使用cookielib模块操作cookie的实例教程
Jul 12 Python
基于Python 的进程管理工具supervisor使用指南
Sep 18 Python
python实现按任意键继续执行程序
Dec 30 Python
python实现学生管理系统
Jan 11 Python
Python多线程原理与用法实例剖析
Jan 22 Python
python redis 删除key脚本的实例
Feb 19 Python
Python3实现的判断回文链表算法示例
Mar 08 Python
Django使用Channels实现WebSocket的方法
Jul 28 Python
Python如何使用input函数获取输入
Aug 06 Python
Python利用capstone实现反汇编
Apr 06 Python
Python实现日志实时监测的示例详解
Apr 06 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
phpmyadmin 3.4 空密码登录的实现方法
2010/05/29 PHP
PHP邮件发送类PHPMailer用法实例详解
2014/09/22 PHP
php遍历替换目录下文件指定内容的方法
2016/11/10 PHP
php图像处理函数imagecopyresampled用法详解
2016/12/02 PHP
javascript 写类方式之五
2009/07/05 Javascript
js编码之encodeURIComponent使用介绍(asp,php)
2012/03/01 Javascript
页面按钮禁用与解除禁用的方法
2014/02/19 Javascript
IE下通过a实现location.href 获取referer的值
2014/09/04 Javascript
触屏中的JavaScript事件分析
2015/02/06 Javascript
开启Javascript中apply、call、bind的用法之旅模式
2015/10/28 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
2016/10/28 Javascript
node.js发送邮件email的方法详解
2017/01/06 Javascript
微信小程序多张图片上传功能
2017/06/07 Javascript
bootstrap里bootstrap动态加载下拉框的实例讲解
2018/08/10 Javascript
js实现内置计时器
2019/12/16 Javascript
Vue 同步异步存值取值实现案例
2020/08/05 Javascript
python使用新浪微博api上传图片到微博示例
2014/01/10 Python
Python读写txt文本文件的操作方法全解析
2016/06/26 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
为什么Python中没有"a++"这种写法
2018/11/27 Python
Python图像滤波处理操作示例【基于ImageFilter类】
2019/01/03 Python
python之yield和Generator深入解析
2019/09/18 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
2020/02/25 Python
python virtualenv虚拟环境配置与使用教程详解
2020/07/13 Python
python/golang 删除链表中的元素
2020/09/14 Python
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
中东地区为妈妈们提供一切的头号购物目的地:Sprii
2018/05/06 全球购物
Lime Crime官网:美国一家主打梦幻精灵系的彩妆品牌
2019/03/22 全球购物
英国手机壳购买网站:Case Hut
2019/04/11 全球购物
eDreams葡萄牙:全球最大的在线旅行社之一
2019/04/15 全球购物
维多利亚的秘密阿联酋官网:Victoria’s Secret阿联酋
2019/12/07 全球购物
大学生个人简历中的自我评价
2013/12/27 职场文书
信息专业学生学习的自我评价
2014/02/17 职场文书
领导干部“四风”查摆问题个人整改措施
2014/10/28 职场文书
2015年乡镇妇联工作总结
2015/05/19 职场文书
《学会生存》读后感3篇
2019/12/09 职场文书