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中使用sort()方法进行排序的简单教程
May 21 Python
python3音乐播放器简单实现代码
Apr 20 Python
PyTorch上搭建简单神经网络实现回归和分类的示例
Apr 28 Python
python实现黑客字幕雨效果
Jun 21 Python
Python实现的简单计算器功能详解
Aug 25 Python
PyQt弹出式对话框的常用方法及标准按钮类型
Feb 27 Python
Pycharm新手教程(只需要看这篇就够了)
Jun 18 Python
用python写测试数据文件过程解析
Sep 25 Python
Django 再谈一谈json序列化
Mar 16 Python
python实现密码强度校验
Mar 18 Python
python爬虫快速响应服务器的做法
Nov 24 Python
python实现代码审查自动回复消息
Feb 01 Python
python3 hdf5文件 遍历代码
May 19 #Python
Python基础之元组与文件知识总结
Python使用protobuf序列化和反序列化的实现
详解分布式系统中如何用python实现Paxos
May 18 #Python
如何在向量化NumPy数组上进行移动窗口
Python如何配置环境变量详解
Python打包为exe详细教程
You might like
PHP跳转页面的几种实现方法详解
2013/06/08 PHP
PHP+MYSQL实现用户的增删改查
2015/03/24 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
jquery下为Event handler传递动态参数的代码
2011/01/06 Javascript
jQuery学习笔记之控制页面实现代码
2012/02/27 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
2014/05/07 Javascript
正则表达式优化JSON字符串的技巧
2015/12/24 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
AngularJS表单和输入验证实例
2016/11/02 Javascript
vue中实现滚动加载更多的示例
2017/11/08 Javascript
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
2018/01/05 NodeJs
Vue + Elementui实现多标签页共存的方法
2019/06/12 Javascript
axios 实现post请求时把对象obj数据转为formdata
2019/10/31 Javascript
[01:16:12]完美世界DOTA2联赛PWL S2 FTD vs Inki 第一场 11.21
2020/11/23 DOTA
Django中几种重定向方法
2015/04/28 Python
Python批量按比例缩小图片脚本分享
2015/05/21 Python
Python实现通过文件路径获取文件hash值的方法
2017/04/29 Python
python编程羊车门问题代码示例
2017/10/25 Python
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
pycharm重置设置,恢复默认设置的方法
2018/10/22 Python
pygame游戏之旅 添加碰撞效果的方法
2018/11/20 Python
Python3实现的判断回文链表算法示例
2019/03/08 Python
如何使用python把ppt转换成pdf
2019/06/29 Python
django创建最简单HTML页面跳转方法
2019/08/16 Python
python scatter函数用法实例详解
2020/02/11 Python
加拿大大码女装购物网站:Penningtons
2020/12/26 全球购物
彪马香港官方网上商店:PUMA香港
2020/12/06 全球购物
硕士研究生求职自荐信范文
2014/03/11 职场文书
公司优秀员工获奖感言
2014/08/14 职场文书
乡镇四风对照检查材料
2014/08/31 职场文书
学习礼仪心得体会
2014/09/01 职场文书
2014年人力资源部工作总结
2014/11/19 职场文书
公务员考察材料
2014/12/23 职场文书
纪检干部学习心得体会
2016/01/23 职场文书
一级电子管军用接收机测评
2022/04/05 无线电