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

python读取Matlab的.mat数据

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
- [6 G$ `8 R( F# y/ X
鉴于以后的目标主要是利用现有的Matlab数据(.mat或者.txt),主要考虑python导入Matlab数据的问题。以下代码可以解决python读取.mat文件的问题。主要使用sicpy.io即可。sicpy.io提供了两个函数loadmat和savemat,非常方便。
( y1 L. F) ~& b* L7 b/ f& {  G: F) f8 C. [# adapted from: Q5 y0 U7 i7 a9 A- W8 W
import scipy.io as sio  
& n/ f; |! l4 s1 K0 E8 @5 E4 M$ b#import matplotlib.pyplot as plt
- ~+ I  h; W4 _$ K2 d- dfrom pylab import *% V6 W, c. I# x+ w( I, z- J
import numpy as np  
/ V' l6 N# r. d( d  
  e& d9 c( S/ {% C' q- \5 X% @* Bmatfn='E:\Pythonrun\myuse\matdata.mat'   # the path of .mat data7 p5 N* V0 |9 x3 u: r
data=sio.loadmat(matfn)  ' ?8 P$ O4 F, d% o6 ^
  
8 O  L! ]" B% [. l: u9 k; m. r( ixx=data['matdata']# H* Y7 l& I, X: w, i2 E
figure(1)( E  F2 h* |: P' Q" p
plot(xx)! k$ y$ M- Y" [! t  M1 A7 D
show()& k3 P6 F; p- K) S9 a# Z+ _
1 Q/ R0 s: y- m( e, G
以下代码是读入txt数据并转换成数组,方法比较笨,更有效的方法待研究。+ S9 g* y8 r0 _7 S
from numpy import *) N. q9 q( L* f2 g+ x+ ]. y. M
1 _* f6 @* _; L) V2 R
def file2list(filename):  
6 E! v/ P7 k  u; w6 b    fr = open(filename)  / I3 u4 @0 a2 P
    array = fr.readlines() #以文件中的每行为一个元素,形成一个list列表  
& ]' q7 @0 `! d3 ^) Y; n    num = len(array)  $ I* G8 ]/ \5 O" P. N; j1 T3 n* e, j
    returnMat = zeros((num,3))#初始化元素为0的,行号数个列表,其中每个元素仍是列表,元素数是3,在此表示矩阵  
$ b5 |3 Y3 a+ o$ H5 w* H1 i4 `    index = 0   
7 l- L+ S: C! P2 h# K% }2 I    for line in array:  : D0 r& o5 O2 z5 ]
        line = line.strip()#去掉一行后的回车符号  
( G# g) v8 i. Q4 S; M7 B        linelist = line.split(' ')#将一行根据分割符,划分成多个元素的列表  - y6 p! O9 j8 E% S8 |$ e4 m$ K
        returnMat[index,:] = linelist[0:3]#向矩阵赋值,注意这种赋值方式比较笨拙  
* U" O' \" P" |0 f" b. B* h        index +=1  ; w" Y9 i5 w+ y
    return returnMat
6 X0 V; n& A7 Z, S% |+ z! m
( _- z# w) W) Q. M( _fname = 'E:\Pythonrun\myuse\num_data.txt'
9 W4 }+ }+ E. G2 o! l6 M% qdata= file2list(fname)

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-6 13:06 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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