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实现的简单RPG游戏流程实例
Jun 28 Python
python数据结构之链表详解
Sep 12 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
Mar 22 Python
python文件操作之批量修改文件后缀名的方法
Aug 10 Python
使用python进行广告点击率的预测的实现
Jul 04 Python
elasticsearch python 查询的两种方法
Aug 04 Python
对Pytorch中Tensor的各种池化操作解析
Jan 03 Python
Django 自定义权限管理系统详解(通过中间件认证)
Mar 11 Python
Selenium常见异常解析及解决方案示范
Apr 10 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
Apr 21 Python
Python word文本自动化操作实现方法解析
Nov 05 Python
python迷宫问题深度优先遍历实例
Jun 20 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
4月1日重磅发布!《星际争霸II》6.0.0版本更新
2020/04/09 星际争霸
php计算整个目录大小的方法
2015/06/01 PHP
讲解WordPress中用于获取评论模板和搜索表单的PHP函数
2015/12/28 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
PHP实现截取中文字符串不出现?号的解决方法
2016/12/29 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
laravel框架实现去掉URL中index.php的方法
2019/10/12 PHP
asp.net+jquery滚动滚动条加载数据的下拉控件
2010/06/25 Javascript
JavaScript编程开发中的五个实用小技巧
2010/07/22 Javascript
jQuery(非HTML5)可编辑表格实现代码
2012/12/11 Javascript
关于JavaScript与HTML的交互事件
2013/04/12 Javascript
js+css3制作时钟特效
2016/10/16 Javascript
Jquery Easyui分割按钮组件SplitButton使用详解(17)
2016/12/18 Javascript
js图片轮播手动切换特效
2017/01/12 Javascript
基于Vue中点击组件外关闭组件的实现方法
2018/03/06 Javascript
使用Angular-CLI构建NPM包的方法
2018/09/07 Javascript
webpack优化的深入理解
2018/12/10 Javascript
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
vue组件内部引入外部js文件的方法
2020/01/18 Javascript
使用JavaScript获取Django模板指定键值数据
2020/05/27 Javascript
在RedHat系Linux上部署Python的Celery框架的教程
2015/04/07 Python
Python中.py文件打包成exe可执行文件详解
2017/03/22 Python
Windows下安装Django框架的方法简明教程
2018/03/28 Python
python psutil监控进程实例
2019/12/17 Python
用什么库写 Python 命令行程序(示例代码详解)
2020/02/20 Python
基于DOM+CSS3实现OrgChart组织结构图插件
2016/03/02 HTML / CSS
欧洲第一中国智能手机和平板电脑网上商店:CECT-SHOP
2018/01/08 全球购物
澳洲的服装老品牌:SABA
2018/02/06 全球购物
加拿大拼图大师:Puzzle Master
2020/12/28 全球购物
信用社实习人员自我鉴定
2013/09/20 职场文书
大学生水果店创业计划书
2014/01/28 职场文书
雷锋精神演讲稿
2014/05/13 职场文书
企业标语大全
2014/07/01 职场文书
地震慰问信
2015/02/14 职场文书
刮痧观后感
2015/06/05 职场文书
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python