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实现绘制树枝简单示例
Jul 24 Python
python中pylint使用方法(pylint代码检查)
Apr 06 Python
Python中if elif else及缩进的使用简述
May 31 Python
关于python之字典的嵌套,递归调用方法
Jan 21 Python
VSCode Python开发环境配置的详细步骤
Feb 22 Python
详解Django+uwsgi+Nginx上线最佳实战
Mar 14 Python
Python 图像对比度增强的几种方法(小结)
Sep 25 Python
Python可变对象与不可变对象原理解析
Feb 25 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
Jun 08 Python
如何利用Python matplotlib绘制雷达图
Dec 21 Python
django上传文件的三种方式
Apr 29 Python
python神经网络学习 使用Keras进行简单分类
May 04 Python
python3 hdf5文件 遍历代码
May 19 #Python
Python基础之元组与文件知识总结
Python使用protobuf序列化和反序列化的实现
详解分布式系统中如何用python实现Paxos
May 18 #Python
如何在向量化NumPy数组上进行移动窗口
Python如何配置环境变量详解
Python打包为exe详细教程
You might like
在PHP中实现Javascript的escape()函数代码
2010/08/08 PHP
php上传图片之时间戳命名(保存路径)
2014/08/15 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
2015/03/23 PHP
PHP中使用foreach()遍历二维数组的简单实例
2016/06/13 PHP
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
来自国外的14个图片放大编辑的jQuery插件整理
2010/10/20 Javascript
基于jquery封装的一个js分页
2011/11/15 Javascript
js如何判断输入字符串长度
2015/12/16 Javascript
js仿微博实现统计字符和本地存储功能
2015/12/22 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
JavaScript中 DOM操作方法小结
2017/04/25 Javascript
Webpack中css-loader和less-loader的使用教程
2017/04/27 Javascript
jQuery实现 RadioButton做必选校验功能
2017/06/15 jQuery
vue translate peoject实现在线翻译功能【新手必看】
2018/06/07 Javascript
Angular路由ui-router配置详解
2018/08/01 Javascript
layui实现文件或图片上传记录
2018/08/28 Javascript
vue-cli的build的文件夹下没有dev-server.js文件配置mock数据的方法
2019/04/17 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
2019/05/04 jQuery
详细分析Node.js 多进程
2020/06/22 Javascript
Vue解决移动端弹窗滚动穿透问题
2020/12/15 Vue.js
vue3使用vue-count-to组件的实现
2020/12/25 Vue.js
pyqt4教程之messagebox使用示例分享
2014/03/07 Python
Python面向对象编程中关于类和方法的学习笔记
2016/06/30 Python
Python中标准模块importlib详解
2017/04/16 Python
Python实现比较扑克牌大小程序代码示例
2017/12/06 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
python爬虫看看虎牙女主播中谁最“顶”步骤详解
2020/12/01 Python
美国在线购买内衣网站:HerRoom
2020/02/22 全球购物
自荐信怎么写好
2013/11/11 职场文书
酒店副总岗位职责
2013/12/24 职场文书
科技工作者先进事迹
2014/08/16 职场文书
国企干部对照检查材料
2014/08/22 职场文书
地球物理学专业推荐信
2014/09/08 职场文书
2015年社区消防安全工作总结
2015/10/14 职场文书
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python
Python scrapy爬取起点中文网小说榜单
2021/06/13 Python