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随机生成一个6位的验证码代码分享
Mar 24 Python
Python探索之修改Python搜索路径
Oct 25 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
Jan 04 Python
使用pandas批量处理矢量化字符串的实例讲解
Jul 10 Python
利用arcgis的python读取要素的X,Y方法
Dec 22 Python
python实现栅栏加解密 支持密钥加密
Mar 20 Python
python将字符串转换成json的方法小结
Jul 09 Python
TensorFlow tf.nn.conv2d实现卷积的方式
Jan 03 Python
python使用梯度下降算法实现一个多线性回归
Mar 24 Python
利用django model save方法对未更改的字段依然进行了保存
Mar 28 Python
OpenCV-Python使用cv2实现傅里叶变换
Jun 09 Python
解决Python保存文件名太长OSError: [Errno 36] File name too long
May 11 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 无限级 SelectTree 类
2009/05/19 PHP
PHP实现支持加盐的图片加密解密
2016/09/09 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
服务器安全设置的几个注册表设置
2007/07/28 Javascript
asp.net下利用js实现返回上一页的实现方法小集
2009/11/24 Javascript
悬浮数字的实现案例
2014/02/19 Javascript
JavaScript中的全局对象介绍
2015/01/01 Javascript
JS实现带有3D立体感的银灰色竖排折叠菜单代码
2015/10/20 Javascript
使用jquery提交form表单并自定义action的实现代码
2016/05/25 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
2016/08/29 Javascript
jquery html5 视频播放控制代码
2016/11/06 Javascript
js实现按座位号抽奖
2017/04/05 Javascript
JS中使用textPath实现线条上的文字
2017/12/25 Javascript
Cordova(ionic)项目实现双击返回键退出应用
2019/09/17 Javascript
如何使用JS console.log()技巧提高工作效率
2020/10/14 Javascript
Python中的包和模块实例
2014/11/22 Python
Python实现Linux命令xxd -i功能
2016/03/06 Python
Python socket套接字实现C/S模式远程命令执行功能案例
2018/07/06 Python
python通过配置文件共享全局变量的实例
2019/01/11 Python
Pythony运维入门之Socket网络编程详解
2019/04/15 Python
使用GitHub和Python实现持续部署的方法
2019/05/09 Python
python实现将一维列表转换为多维列表(numpy+reshape)
2019/11/29 Python
使用HTML5进行SVG矢量图形绘制的入门教程
2016/02/19 HTML / CSS
波兰珠宝品牌:YES
2019/08/09 全球购物
白俄罗斯女装和针织品网上商店:Presli.by
2019/10/13 全球购物
企业项目策划书
2014/01/11 职场文书
考试违纪检讨书
2014/02/02 职场文书
大学军训自我鉴定大全
2014/09/18 职场文书
聘任证明怎么写
2015/03/02 职场文书
2015年“7.11”世界人口日宣传活动方案
2015/05/06 职场文书
幼儿园安全教育月活动总结
2015/05/08 职场文书
2015秋季田径运动会广播稿
2015/08/19 职场文书
《学会看病》教学反思
2016/02/17 职场文书
熟背这些句子,让您的英语口语突飞猛进(135句)
2019/09/06 职场文书
C3 线性化算法与 MRO之Python中的多继承
2021/10/05 Python
分享CSS盒子模型隐藏的几种方式
2022/02/28 HTML / CSS