找回密码
 注册
关于网站域名变更的通知
查看: 499|回复: 1
打印 上一主题 下一主题

python读取Matlab的.mat数据

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-4-16 10:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

7 k- H# `! u% x2 D: D, z; r鉴于以后的目标主要是利用现有的Matlab数据(.mat或者.txt),主要考虑python导入Matlab数据的问题。以下代码可以解决python读取.mat文件的问题。主要使用sicpy.io即可。sicpy.io提供了两个函数loadmat和savemat,非常方便。7 S( A/ V' j7 I, j/ Z
# adapted from8 S$ Z( P3 g: P$ W6 G' r
import scipy.io as sio  
" G0 f9 i) l- v#import matplotlib.pyplot as plt2 {4 x8 N7 f, e
from pylab import *
4 C5 \* ?+ o+ o8 r7 Wimport numpy as np  - }6 H. H. b" B# C6 R! t
  
, x0 y0 I* T3 @2 xmatfn='E:\Pythonrun\myuse\matdata.mat'   # the path of .mat data
$ H* N3 v; \! Mdata=sio.loadmat(matfn)    p- Q3 a% v% L& i2 ]
  4 j9 q8 u6 O- w- Z. G
xx=data['matdata']9 H* g) X- J, m; X
figure(1)
! `) y9 C  |; v$ X* r0 T9 ~2 b" w* mplot(xx)& t$ J# b, d- Q$ w. k
show()+ U* D0 L" `: s! V8 f
' a# t& q+ g/ \, R2 V
以下代码是读入txt数据并转换成数组,方法比较笨,更有效的方法待研究。2 S) c/ i# Q- G7 C4 r
from numpy import *
" F# q. }: l- n4 N( ]4 D- r; {
5 L. k# C/ q+ T" o( G/ G$ ndef file2list(filename):  
' ^" c4 `( K) M; A# S. O  V    fr = open(filename)  3 {/ E/ g! ]. W: M
    array = fr.readlines() #以文件中的每行为一个元素,形成一个list列表  
5 H5 U. B# e& g6 J4 ^( H' L    num = len(array)  ' V0 ?. S6 |+ Z: Z& I
    returnMat = zeros((num,3))#初始化元素为0的,行号数个列表,其中每个元素仍是列表,元素数是3,在此表示矩阵  0 _: ~; ~( {; v# o+ l3 [: Q
    index = 0   2 W1 O3 V! `3 _+ o( I3 @# V* y
    for line in array:  
, S( Y( |# @5 l5 e! E3 J% d) h3 p        line = line.strip()#去掉一行后的回车符号  & f) e7 a/ \" i5 Z
        linelist = line.split(' ')#将一行根据分割符,划分成多个元素的列表  $ A) j  J  w2 E* y: ?: g4 \
        returnMat[index,:] = linelist[0:3]#向矩阵赋值,注意这种赋值方式比较笨拙  
, V* U  d) N$ I/ ~        index +=1  
$ e1 ^+ |0 @7 v* Q% ?. N+ m    return returnMat
) A# `2 a" h9 I  [
4 U' V& d1 `% h( Efname = 'E:\Pythonrun\myuse\num_data.txt'1 C" `! g* p  z; }! w; ^
data= file2list(fname)

该用户从未签到

2#
发表于 2020-4-16 19:05 | 只看该作者
python读取Matlab的.mat数据
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-23 07:49 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表