Python 读写 Matlab Mat 格式数据的操作


Posted in Python onMay 19, 2021

1. 非 matlab v7.3 files 读写

import scipy.io as sio
import numpy
# matFile 读取
matFile = 'matlabdata.mat'
datas = sio.loadmat(matFile)
# 加载 matFile 内的数据
# 假设 mat 内保存的变量为 matlabdata
matlabdata = datas['matlabdata']

# matFile 写入
save_matFile = 'save_matlabdata.mat'
save_matlabdata = np.array([1,2,3,4,5])
sio.savemat(save_matFile, {'array':save_matlabdata})

2. matlab v7.3 files 读取

如果 matlab 保存 data 时,采用的是 ‘-v7.3',scipy.io.loadmat函数加载数据会出现错误:

File "/usr/local/lib/python2.7/dist-packages/scipy/io/matlab/mio.py", line 64, in mat_reader_factory
raise NotImplementedError('Please use HDF reader for matlab v7.3 files')
NotImplementedError: Please use HDF reader for matlab v7.3 files

可以采用:

import h5py
with h5py.File('matlabdata.mat', 'r') as f:
    f.keys() # matlabdata.mat 中的变量名
datas = h5py.File('matlabdata.mat')['matlabdata'].value

补充:【Matlab/Python】Matlab和Python之间的数据传输

很多时候,我们需要把matlab里的数据保存下来,然后用python来处理。

方法一(.mat格式)

直接将matlab的数据存储成.mat格式,然后在python中利用scipy.io中的loadmat函数来读取

import scipy.io     as sio
data = sio.loadmat(...)

方法二(.h5格式)

当要存储的.mat文件比较大时,matlab中需要用save -v7.3才能存储。但是利用方法一在python中读取时,会不支持。可以用以下方法读取

with h5py.File("mydata.mat") as f:
    data = f["mydata"][:]

可以正确读取数据,但是数组维度会倒过来,即本来是(2,3,4,5),读出来会是(5,4,3,2)

但是只有.mat数据用save -v7.3保存时,才能用此方法读取,否则,应用方法一读取

所以可以在matlab中将数据保存成.h5格式,统一按照方法二来读取

matlab中存储.h5格式用如下方法

h5create('data.h5','/data',[2,3,4,5]);
data = rand(2,3,4,5)
h5write('data.h5','/data',data)

但是用python读取时,矩阵维度仍然会倒过来

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
Jun 28 Python
python爬虫实战之爬取京东商城实例教程
Apr 24 Python
django实现登录时候输入密码错误5次锁定用户十分钟
Nov 05 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
Apr 02 Python
Python中函数的基本定义与调用及内置函数详解
May 13 Python
ML神器:sklearn的快速使用及入门
Jul 11 Python
Python更新所有已安装包的操作
Feb 13 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
Feb 25 Python
python新手学习可变和不可变对象
Jun 11 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
Jul 01 Python
用Python 爬取猫眼电影数据分析《无名之辈》
Jul 24 Python
解决python 在for循环并且pop数组的时候会跳过某些元素的问题
Dec 11 Python
python3 hdf5文件 遍历代码
May 19 #Python
Python基础之元组与文件知识总结
Python使用protobuf序列化和反序列化的实现
详解分布式系统中如何用python实现Paxos
May 18 #Python
如何在向量化NumPy数组上进行移动窗口
Python如何配置环境变量详解
Python打包为exe详细教程
You might like
mysql 性能的检查和优化方法
2009/06/21 PHP
php模拟socket一次连接,多次发送数据的实现代码
2011/07/26 PHP
调用js时ie6和ie7,ff的区别
2009/08/19 Javascript
Riot.js 快速的JavaScript单元测试框架
2009/11/09 Javascript
javascript 进阶篇2 CSS XML学习
2012/03/14 Javascript
将光标定位于输入框最右侧实现代码
2012/12/04 Javascript
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
解析DHTML,JavaScript,DOM,BOM以及WEB标准的描述
2013/06/19 Javascript
Node.js实用代码段之获取Buffer对象字节长度
2016/03/17 Javascript
js实现百度地图定位于地址逆解析,显示自己当前的地理位置
2016/12/08 Javascript
JS+canvas动态绘制饼图的方法示例
2017/09/12 Javascript
一秒学会微信小程序制作table表格
2019/02/14 Javascript
nodejs微信开发之接入指南
2019/03/17 NodeJs
vue分页插件的使用方法
2019/12/25 Javascript
vue-cli3.0实现一个多页面应用的历奇经历记录总结
2020/03/16 Javascript
React+EggJs实现断点续传的示例代码
2020/07/07 Javascript
Vue打包部署到Nginx时,css样式不生效的解决方式
2020/08/03 Javascript
JavaScript中条件语句的优化技巧总结
2020/12/04 Javascript
jquery实现穿梭框功能
2021/01/19 jQuery
Python实现豆瓣图片下载的方法
2015/05/25 Python
Python 实现链表实例代码
2017/04/07 Python
django文档学习之applications使用详解
2018/01/29 Python
Python统计学一数据的概括性度量详解
2020/03/03 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
pandas apply使用多列计算生成新的列实现示例
2021/02/24 Python
CSS3 background-image颜色渐变的实现代码
2018/09/13 HTML / CSS
一款纯css3实现的竖形二级导航的实例教程
2014/12/11 HTML / CSS
整理HTML5中支持的URL编码与字符编码
2016/02/23 HTML / CSS
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
瑞典度假品牌:OAS
2019/05/28 全球购物
爽歪歪广告词
2014/03/20 职场文书
《火烧云》教学反思
2014/04/12 职场文书
任命书标准格式
2015/03/02 职场文书
《假如》教学反思
2016/02/17 职场文书
ubuntu端向日葵键盘输入卡顿问题及解决
2022/12/24 Servers