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登录Dr.com思路以及代码分享
Jun 25 Python
python实现计算资源图标crc值的方法
Oct 05 Python
Python使用metaclass实现Singleton模式的方法
May 05 Python
Python实现 多进程导入CSV数据到 MySQL
Feb 26 Python
Python生成器的使用方法和示例代码
Mar 04 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
Jul 03 Python
Django接收post前端返回的json格式数据代码实现
Jul 31 Python
解决Python import docx出错DLL load failed的问题
Feb 13 Python
彻底搞懂 python 中文乱码问题(深入分析)
Feb 28 Python
python3.7 openpyxl 在excel单元格中写入数据实例
Sep 01 Python
浅析python 字典嵌套
Sep 29 Python
python疲劳驾驶困倦低头检测功能的实现
Apr 04 Python
python3 hdf5文件 遍历代码
May 19 #Python
Python基础之元组与文件知识总结
Python使用protobuf序列化和反序列化的实现
详解分布式系统中如何用python实现Paxos
May 18 #Python
如何在向量化NumPy数组上进行移动窗口
Python如何配置环境变量详解
Python打包为exe详细教程
You might like
德生PL550的电路分析
2021/03/02 无线电
php在线生成ico文件的代码
2007/10/09 PHP
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
2011/11/10 PHP
解析PHP实现下载文件的两种方法
2013/07/05 PHP
IE8 兼容性问题(属性名区分大小写)
2009/06/04 Javascript
Chrome Form多次提交表单问题的解决方法
2011/05/09 Javascript
javascript中xml操作实现代码
2011/11/21 Javascript
javascrip关于继承的小例子
2013/05/10 Javascript
JavaScript中匿名、命名函数的性能测试
2014/09/04 Javascript
深入探寻javascript定时器
2015/01/02 Javascript
js select下拉联动 更具级联性!
2020/04/17 Javascript
ionic2 tabs 图标自定义实例
2017/03/08 Javascript
angular.js指令中的controller、compile与link函数的不同之处
2017/05/10 Javascript
Web制作验证码功能实例代码
2017/06/19 Javascript
使用json-server简单完成CRUD模拟后台数据的方法
2018/07/12 Javascript
jQuery扩展方法实现Form表单与Json互相转换的实例代码
2018/09/05 jQuery
vue+web端仿微信网页版聊天室功能
2019/04/30 Javascript
微信小程序实现轨迹回放的示例代码
2019/12/13 Javascript
JavaScript实现简单验证码
2020/08/24 Javascript
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
Python使用当前时间、随机数产生一个唯一数字的方法
2017/09/18 Python
Python面向对象之静态属性、类方法与静态方法分析
2018/08/24 Python
pandas 将索引值相加的方法
2018/11/15 Python
详解Python requests 超时和重试的方法
2018/12/18 Python
python实现飞机大战游戏
2020/10/26 Python
pytorch实现对输入超过三通道的数据进行训练
2020/01/15 Python
简单的命令查看安装的python版本号
2020/08/28 Python
西班牙拥有最佳品牌的动物商店:Animalear.com
2018/01/05 全球购物
以色列的身体护理及家居香薰品牌:Sabon NYC
2018/02/23 全球购物
西班牙最大的婴儿用品网上商店:Bebitus
2019/05/30 全球购物
安卓程序员求职信
2014/02/28 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
检讨书范文大全
2015/05/07 职场文书
初中班长竞选稿
2015/11/20 职场文书
干货:如何写好工作总结报告!
2019/05/10 职场文书
Python实战实现爬取天气数据并完成可视化分析详解
2022/06/16 Python