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应用03 使用PyQT制作视频播放器实例
Dec 07 Python
Python编程pygame模块实现移动的小车示例代码
Jan 03 Python
Python之reload流程实例代码解析
Jan 29 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
Mar 20 Python
Python可变参数*args和**kwargs用法实例小结
Apr 27 Python
django 使用 request 获取浏览器发送的参数示例代码
Jun 11 Python
Python反射和内置方法重写操作详解
Aug 27 Python
Python使用post及get方式提交数据的实例
Jan 24 Python
python实现爬取百度图片的方法示例
Jul 06 Python
Python Opencv任意形状目标检测并绘制框图
Jul 23 Python
python 实现数据库中数据添加、查询与更新的示例代码
Dec 07 Python
python人工智能human learn绘图可创建机器学习模型
Nov 23 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
如何开发一个虚拟域名系统
2006/10/09 PHP
Yii基于数组和对象的Model查询技巧实例详解
2015/12/28 PHP
php UNIX时间戳用法详解
2017/02/16 PHP
form自动提交实例讲解
2017/07/10 PHP
PHP设计模式之策略模式原理与用法实例分析
2019/04/04 PHP
漂亮的提示信息(带箭头)
2007/03/21 Javascript
this[] 指的是什么内容 讨论
2007/03/24 Javascript
DOM基础教程之使用DOM + Css
2015/01/20 Javascript
浅谈javascript构造函数与实例化对象
2015/06/22 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
详解angularJS自定义指令间的相互交互
2017/07/05 Javascript
AngularJS实现的锚点楼层跳转功能示例
2018/01/02 Javascript
JavaScript设计模式之单例模式简单实例教程
2018/07/02 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
2018/07/06 Javascript
AngularJs中$cookies简单用法分析
2019/05/30 Javascript
纯JS实现五子棋游戏
2020/05/28 Javascript
python实现k均值算法示例(k均值聚类算法)
2014/03/16 Python
Python pass详细介绍及实例代码
2016/11/24 Python
Python使用scipy模块实现一维卷积运算示例
2019/09/05 Python
Python实现平行坐标图的绘制(plotly)方式
2019/11/22 Python
python os.path.isfile()因参数问题判断错误的解决
2019/11/29 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
TensorFlow2.0矩阵与向量的加减乘实例
2020/02/07 Python
使用Python对Dicom文件进行读取与写入的实现
2020/04/20 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
Django URL参数Template反向解析
2020/11/24 Python
旅游管理专业生自荐信范文
2014/01/02 职场文书
婚庆公司的创业计划书
2014/01/22 职场文书
2014年公司植树节活动方案
2014/03/04 职场文书
元旦活动感言
2014/03/08 职场文书
团队精神的演讲稿
2014/05/14 职场文书
邹越感恩父母演讲稿
2014/08/28 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
房产证明范本
2015/06/19 职场文书
Python代码风格与编程习惯重要吗?
2021/06/03 Python
MySQL中的 inner join 和 left join的区别解析(小结果集驱动大结果集)
2023/05/08 MySQL