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中list列表的一些进阶使用方法介绍
Aug 15 Python
浅析AST抽象语法树及Python代码实现
Jun 06 Python
Python-嵌套列表list的全面解析
Jun 08 Python
Python实现信用卡系统(支持购物、转账、存取钱)
Jun 24 Python
Python排序搜索基本算法之归并排序实例分析
Dec 08 Python
Python中的defaultdict与__missing__()使用介绍
Feb 03 Python
使用Python AIML搭建聊天机器人的方法示例
Jul 09 Python
python字符串格式化方式解析
Oct 19 Python
Python计算IV值的示例讲解
Feb 28 Python
python3实现往mysql中插入datetime类型的数据
Mar 02 Python
用Python远程登陆服务器的步骤
Apr 16 Python
Python自动化工具之实现Excel转Markdown表格
Apr 08 Python
python3 hdf5文件 遍历代码
May 19 #Python
Python基础之元组与文件知识总结
Python使用protobuf序列化和反序列化的实现
详解分布式系统中如何用python实现Paxos
May 18 #Python
如何在向量化NumPy数组上进行移动窗口
Python如何配置环境变量详解
Python打包为exe详细教程
You might like
仿Aspnetpager的一个PHP分页类代码 附源码下载
2012/10/08 PHP
php中将字符串转为HTML的实体引用的一个类
2013/02/03 PHP
php 多文件上传的实现实例
2016/10/23 PHP
jQuery的强大选择器小结
2009/12/27 Javascript
js中单引号与双引号冲突问题解决方法
2013/10/04 Javascript
优化Jquery,提升网页加载速度
2013/11/14 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
sencha ext js 6 快速入门(必看)
2016/06/01 Javascript
JS修改地址栏参数实例代码
2016/06/14 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
2017/04/13 jQuery
JS实现数组去重方法总结(六种方法)
2017/07/14 Javascript
JS实现的简单拖拽购物车功能示例【附源码下载】
2018/01/03 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
了解重排与重绘
2019/05/29 Javascript
Python中使用MELIAE分析程序内存占用实例
2015/02/18 Python
Python处理RSS、ATOM模块FEEDPARSER介绍
2015/02/18 Python
python实现决策树分类
2018/08/30 Python
Python异常的检测和处理方法
2018/10/26 Python
Django使用AJAX调用自己写的API接口的方法
2019/03/06 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
详解Python中如何将数据存储为json格式的文件
2020/11/18 Python
Aeropostale官网:美国著名校园品牌及青少年服饰品牌
2019/03/21 全球购物
Hotels.com越南:酒店预订
2019/10/29 全球购物
P/Invoke是什么
2015/07/31 面试题
物流业务员岗位职责
2014/02/08 职场文书
经典安踏广告词
2014/03/21 职场文书
安全教育演讲稿
2014/05/09 职场文书
建筑工程技术专业求职信
2014/07/16 职场文书
九一八事变演讲稿
2014/09/05 职场文书
标准单位租车协议书
2014/09/23 职场文书
法人代表证明书格式
2014/10/01 职场文书
房屋授权委托书范本
2014/10/07 职场文书
2014年家长学校工作总结
2014/11/20 职场文书
Nginx解决前端访问资源跨域问题的方法详解
2021/03/31 Servers
python使用openpyxl库读写Excel表格的方法(增删改查操作)
2021/05/02 Python
浅析Redis Sentinel 与 Redis Cluster
2021/06/24 Redis