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新手经常遇到的17个错误分析
Jul 30 Python
Python3搜索及替换文件中文本的方法
May 22 Python
举例区分Python中的浅复制与深复制
Jul 02 Python
Python聚类算法之DBSACN实例分析
Nov 20 Python
Python实现查看系统启动项功能示例
May 10 Python
python微信公众号之关注公众号自动回复
Oct 25 Python
使用pandas实现csv/excel sheet互相转换的方法
Dec 10 Python
详解python--模拟轮盘抽奖游戏
Apr 12 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
Aug 02 Python
Selenium 安装和简单使用的实现
Dec 04 Python
Django开发RESTful API实现增删改查(入门级)
May 10 Python
Python使用Web框架Flask开发项目
Jun 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
星际争霸中的对战模式介绍
2020/03/04 星际争霸
生成静态页面的PHP类
2006/07/15 PHP
我的群发邮件程序
2006/10/09 PHP
PHP新手上路(九)
2006/10/09 PHP
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
2011/12/25 PHP
ThinkPHP入口文件设置及相关注意事项分析
2014/12/05 PHP
php删除指定目录的方法
2015/04/03 PHP
php格式化json函数示例代码
2016/05/12 PHP
JavaScript判断变量是否为空的自定义函数分享
2015/01/31 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
2015/03/31 Javascript
修改Jquery Dialog 位置的实现方法
2016/08/26 Javascript
JS实现复制内容到剪贴板功能
2017/02/05 Javascript
基于jQuery实现文字打印动态效果
2017/04/21 jQuery
vue.js中created方法作用
2018/03/30 Javascript
vue使用自定义icon图标的方法
2018/05/14 Javascript
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
浅析Vue 和微信小程序的区别、比较
2018/08/03 Javascript
django简单的前后端分离的数据传输实例 axios
2020/05/18 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
2020/07/18 Javascript
使用python实现语音文件的特征提取方法
2019/01/09 Python
Python使用字典的嵌套功能详解
2019/02/27 Python
Python关于__name__属性的含义和作用详解
2020/02/19 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
详解pycharm自动import所需的库的操作方法
2020/11/30 Python
利用css3径向渐变做一张优惠券的示例
2018/03/22 HTML / CSS
HTML5实现的震撼3D焦点图动画的示例代码
2019/09/26 HTML / CSS
世界最大的私人旅行指南出版商:孤独星球
2016/08/23 全球购物
美国折衷生活方式品牌:Robert Graham
2018/07/13 全球购物
总经理办公室主任岗位职责
2013/11/12 职场文书
省优秀教师事迹材料
2014/01/30 职场文书
财务管理职业生涯规划书
2014/02/26 职场文书
公益广告语集锦
2014/03/13 职场文书
给老婆的道歉信
2015/01/20 职场文书
导游词之凤凰古城
2019/10/22 职场文书
Pytorch实现图像识别之数字识别(附详细注释)
2021/05/11 Python
JavaScript实现简单的音乐播放器
2022/08/14 Javascript