详解如何在python中读写和存储matlab的数据文件(*.mat)

 更新时间:2018年02月24日 10:23:57   作者:网海水手  
这篇文章主要介绍了详解如何在python中读写和存储matlab的数据文件(*.mat),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

背景

在做deeplearning过程中,使用caffe的框架,一般使用matlab来处理图片(matlab处理图片相对简单,高效),用python来生成需要的lmdb文件以及做test产生结果。所以某些matlab从图片处理得到的label信息都会以.mat文件供python读取,同时也python产生的结果信息也需要matlab来做进一步的处理(当然也可以使用txt,不嫌麻烦自己处理结构信息)。

介绍

matlab和python间的数据传输一般是基于matlab的文件格式.mat,python中numpy和scipy提供了一些函数,可以很好的对.mat文件的数据进行读写和处理。

在这里numpy作用是提供Array功能映射matlab里面的Matrix,而scipy提供了两个函数loadmat和savemat来读写.mat文件。

下面是一个简单的测试程序,具体的函数用法可以看帮助文档:

import scipy.io as sio 
import matplotlib.pyplot as plt 
import numpy as np 
 
#matlab文件名 
matfn=u'E:/python/测试程序/162250671_162251656_1244.mat' 
data=sio.loadmat(matfn) 
 
plt.close('all') 
xi=data['xi'] 
yi=data['yi'] 
ui=data['ui'] 
vi=data['vi'] 
plt.figure(1) 
plt.quiver( xi[::5,::5],yi[::5,::5],ui[::5,::5],vi[::5,::5]) 
plt.figure(2) 
plt.contourf(xi,yi,ui) 
plt.show()  
sio.savemat('saveddata.mat', {'xi': xi,'yi': yi,'ui': ui,'vi': vi}) 

示例2

import scipy.io as sio
import numpy as np

###下面是讲解python怎么读取.mat文件以及怎么处理得到的结果###
load_fn = 'xxx.mat'
load_data = sio.loadmat(load_fn)
load_matrix = load_data['matrix'] #假设文件中存有字符变量是matrix,例如matlab中save(load_fn, 'matrix');当然可以保存多个save(load_fn, 'matrix_x', 'matrix_y', ...);
load_matrix_row = load_matrix[0] #取了当时matlab中matrix的第一行,python中数组行排列

###下面是讲解python怎么保存.mat文件供matlab程序使用###
save_fn = 'xxx.mat'
save_array = np.array([1,2,3,4])
sio.savemat(save_fn, {'array': save_array}) #和上面的一样,存在了array变量的第一行

save_array_x = np.array([1,2,3,4])
save_array_y = np.array([5,6,7,8])
sio.savemat(save_fn, {'array_x': save_array_x, 'array_x': save_array_x}) #同理,只是存入了两个不同的变量供

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 零基础使用Python读写处理Excel表格的方法

    零基础使用Python读写处理Excel表格的方法

    这篇文章主要介绍了Python读写处理Excel表格,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • Python对Excel进行处理的实操指南

    Python对Excel进行处理的实操指南

    这篇文章主要给大家介绍了关于Python对Excel进行处理的实操指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • python中矩阵合并、拼接、组合的实现示例

    python中矩阵合并、拼接、组合的实现示例

    本文主要介绍了python中矩阵合并、拼接、组合的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • pycharm2022.1最新永久激活码破解补丁一键安装教程免费分享(2022持续更新)

    pycharm2022.1最新永久激活码破解补丁一键安装教程免费分享(2022持续更新)

    更新到Pycharm 2022.2.x版,pycharm2022.2最新可用永久激活码分享(持续更新),pycharm激活补丁一键安装简单方便,无需手动修改文件,兼容苹果MAC,linux,Windows系统
    2022-07-07
  • selenium鼠标操作实战案例详解

    selenium鼠标操作实战案例详解

    在实际场景中,会有单击、长时间单击、双击、右键、拖拽等鼠标操作,selenium提供了名为ActionChains的类来处理这些操作,下面这篇文章主要给大家介绍了关于selenium鼠标操作实战案例的相关资料,需要的朋友可以参考下
    2023-05-05
  • plt.figure()参数使用详解及运行演示

    plt.figure()参数使用详解及运行演示

    这篇文章主要介绍了plt.figure()参数使用详解及运行演示,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Python操作Word批量生成文章的方法

    Python操作Word批量生成文章的方法

    这篇文章主要介绍了Python操作Word批量生成文章的方法,需要的朋友可以参考下
    2015-07-07
  • Python 自动化修改word的案例

    Python 自动化修改word的案例

    这篇文章主要介绍了Python 自动化修改word的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 解决Pycharm 运行后没有输出的问题

    解决Pycharm 运行后没有输出的问题

    这篇文章主要介绍了解决Pycharm 运行后没有输出的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • python使用新浪微博api上传图片到微博示例

    python使用新浪微博api上传图片到微博示例

    本文介绍了Python使用新浪微博官方api发表带图的微博(模拟post)的功能,大家参考使用吧
    2014-01-01

最新评论