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

python读取Matlab的.mat数据

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

" N" x+ ~9 `, ?+ v. F. f鉴于以后的目标主要是利用现有的Matlab数据(.mat或者.txt),主要考虑python导入Matlab数据的问题。以下代码可以解决python读取.mat文件的问题。主要使用sicpy.io即可。sicpy.io提供了两个函数loadmat和savemat,非常方便。! H5 F* w7 g+ a3 N% F0 q
# adapted from
4 L" E# ^; j) p& _; }  s7 W' Rimport scipy.io as sio  
& o0 a; W& a4 l5 e8 t#import matplotlib.pyplot as plt
% f* n8 F9 l- l5 o8 R. u0 P# s/ Qfrom pylab import *+ P9 Z, U' |9 @. x# n! U$ u
import numpy as np  ) e0 T" H2 x; a/ W9 Z
  2 A( t! }6 `% H  V/ d+ i
matfn='E:\Pythonrun\myuse\matdata.mat'   # the path of .mat data
& ~3 j% y# ^/ X9 b6 Wdata=sio.loadmat(matfn)  
5 R4 y% Z6 o) q+ x* e  
$ w  F, }: s0 v0 R* _xx=data['matdata']
4 K2 V) v3 I! h4 z2 ?3 e* c$ Kfigure(1)$ C( p! j2 A3 K& ?
plot(xx)
  H" ]5 t" [& o8 x6 H% eshow()
# P6 t) _. I& N7 g- Q
9 Z( a+ W% B- ~8 ]0 [以下代码是读入txt数据并转换成数组,方法比较笨,更有效的方法待研究。
" r/ \5 }# w: e' X  L# Ofrom numpy import *9 l" l9 Z* v$ I/ I6 b1 G
! |- X' u9 r  x3 s7 L
def file2list(filename):    I6 ?1 F* x1 \: q6 N# j2 Q( {: ]
    fr = open(filename)  ! _+ G8 X2 w2 l$ B8 k" Z; }
    array = fr.readlines() #以文件中的每行为一个元素,形成一个list列表  5 t+ v0 U2 W1 a3 J4 _+ ?
    num = len(array)  
. Z9 d# r4 |! n    returnMat = zeros((num,3))#初始化元素为0的,行号数个列表,其中每个元素仍是列表,元素数是3,在此表示矩阵  
6 Z, `' J1 V& `' r    index = 0   
$ S4 H6 Q6 y3 @* _    for line in array:  
# F% s5 k7 T, ]- |, t        line = line.strip()#去掉一行后的回车符号  : U5 D/ y4 f/ @+ \6 |
        linelist = line.split(' ')#将一行根据分割符,划分成多个元素的列表  
  W; K$ A8 Z* O: p" ]5 c        returnMat[index,:] = linelist[0:3]#向矩阵赋值,注意这种赋值方式比较笨拙  
0 h* @4 M6 K3 q+ ~* O5 c. V" p  u        index +=1  5 f9 {4 S/ q! H8 ^
    return returnMat/ J$ G! p8 h* M* d" B/ ~! c

) F; \* b' Q5 h7 d- W( ^fname = 'E:\Pythonrun\myuse\num_data.txt'. p, y/ q  v5 K1 i4 s, A2 F
data= file2list(fname)

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 02:43 , Processed in 0.156250 second(s), 24 queries , Gzip On.

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

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

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