先给大家介绍下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读取mat文件并画图_[宜配屋]听图阁相关推荐

  1. python和c++情侣网名_[宜配屋]听图阁

    混编的含义有两种, 一种是在python里面写C 一种是C里面写python 本文主要是进行简化,方便使用. ############################################# ...

  2. python卸载后安装不上_[宜配屋]听图阁

    前言 本文主要给大家介绍了关于python卸载再安装遇到问题的解决方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 解决方法 1.起因 之所以要卸载安装是因为我把python安装路 ...

  3. python turtle画房子详细解释_[宜配屋]听图阁

    我就废话不多说了,直接上代码吧! import turtle t=turtle.Turtle() turtle.Turtle().screen.delay(0) tleft=turtle.Turtle ...

  4. python的pygame库使用方法_[宜配屋]听图阁

    使用python pygame库实现一个双人弹球小游戏,两人分别控制一个左右移动的挡板用来拦截小球,小球会在两板间不停弹跳,拦截失败的一方输掉游戏,规则类似于简化版的乒乓球. 因为是第一次用pygam ...

  5. python 小游戏500行以内_[宜配屋]听图阁

    在讲述有关list的时候,提到做游戏的事情,后来这个事情一直没有接续.不是忘记了,是在想在哪个阶段做最合适.经过一段时间学习,看官已经不是纯粹小白了,已经属于python初级者了.现在就是开始做那个游 ...

  6. python文件传输模块_[宜配屋]听图阁 - python 使用poster模块进行http方式的文件传输到服务器的方法...

    这几天帮内部人员做一个文件传输的小工具,要用http的方式,在用django搭建了个小框架之后,如何进行传输,特别是大文件的传输,成为主要问题.经过查资料,最后选择了通过poster这个模块来进行文件 ...

  7. python开发一个彩票系统_[宜配屋]听图阁

    本文为大家分享了python实现彩票系统的具体代码,供大家参考,具体内容如下 功能:1.注册  2.登录  3.充钱   4.提现  5.下注  6.开奖  7.退出 简述:彩民需要用身份证号码开户注 ...

  8. python做excel表格代码_[宜配屋]听图阁

    安装两个库:pip install xlrd.pip install xlwt 1.python读excel--xlrd 2.python写excel--xlwt 1.读excel数据,包括日期等数据 ...

  9. python调用百度地图画轨迹图_[宜配屋]听图阁

    如题,先上效果图: 主要分为两大步骤 使用python语句,通过百度地图API,对已知的地名抓取经纬度 使用百度地图API官网的html例程,修改数据部分,实现呈现效果 一.使用python语句,通过 ...

最新文章

  1. 100 行代码透彻解析 RPC 原理
  2. Laravel 传递数据到视图
  3. boost::to_address用法实例
  4. 求二进制数中1的个数
  5. java 知识积累_java学习知识积累-spring常用注解
  6. 2011对于运维的思考
  7. php windows环境 安装 Apache-apollo + phpMQTT 实现发送 MQTT
  8. java 向DB2插入数据
  9. 懒人也能变美,AR试妆会让你剁手到停不下来吗?
  10. 请认真使用没有后悔药的parted分区工具
  11. 【OpenCV 例程 300 篇】101. 自适应中值滤波器
  12. 检测华为网络设备的常用命令
  13. EM(expection maxium)算法
  14. 计算机网络13--网络应用的体系结构
  15. unity android 不锁屏,Unity 实现Android不锁屏
  16. 360Vulcan团队再获微软致谢 协助修复Edge及IE漏洞
  17. 计算机二级office高级应用和上机指导,2019年9月全国计算机二级教程:MS Office高级应用上机指导...
  18. C#(VS2019)窗体应用程序之第一个窗口
  19. 微信小程序时间格式转换
  20. java.util.ServiceConfigurationError: org.apache.juli.logging.Log: Provider org.eclipse.jetty.apache.

热门文章

  1. 听话的苹果-第11届蓝桥杯Scratch选拔赛真题精选
  2. 在Unity中获得一个物体的所有子物体包括孙物体。
  3. Python - 归一化与反归一化
  4. 下载AE插件时出错,为什么?
  5. 武汉人才服务中心---迁移户口回老家---流程
  6. zp2ss matlab,控制系统计算机仿真(matlab)实验三实验报告
  7. 【大数据可视化分析】股吧帖子情感倾向及用户参与行为
  8. 第十章:Java之接口基本概念、接口实现多继承、Object类
  9. geteditor p 取消自动_进自助洗车机之前请先确认自动驻车和电子手刹的状态哦
  10. 记录 |探究一次嗅到坏代码后封装再封装