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

python读取Matlab的.mat数据

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
  ~/ v+ Q9 Y) I" g8 P
鉴于以后的目标主要是利用现有的Matlab数据(.mat或者.txt),主要考虑python导入Matlab数据的问题。以下代码可以解决python读取.mat文件的问题。主要使用sicpy.io即可。sicpy.io提供了两个函数loadmat和savemat,非常方便。0 Y6 f# W( A, ]% O6 G. N8 G
# adapted from
! u$ _! E: q4 T, R5 y% q4 q8 j  Wimport scipy.io as sio    J& X4 w' _7 u$ Y0 x6 G
#import matplotlib.pyplot as plt
( ^$ i0 n8 D2 _4 A/ c" Cfrom pylab import *
0 Q" N/ Q/ V. p: _7 mimport numpy as np  
- }6 b6 x7 a5 m6 O7 i  
* y. V3 j& d: P7 Smatfn='E:\Pythonrun\myuse\matdata.mat'   # the path of .mat data, n0 O: C7 [. m/ d1 [" h! I
data=sio.loadmat(matfn)  8 s- b) h# |( c+ s* M: U- t/ O
  
. s4 {5 ?+ f8 Qxx=data['matdata']  C! D( T/ u1 R, ^" A
figure(1)0 j  ~4 I3 I# K  ]
plot(xx)8 ]. }0 M: g# a' f1 l- a+ _/ g
show()! {* S* g$ K  t7 s/ I' c* v2 |3 z/ H

+ W5 Z; s) s$ T" @以下代码是读入txt数据并转换成数组,方法比较笨,更有效的方法待研究。
2 _% y- C  I* ^from numpy import *2 [3 G" f' |3 z1 c0 ]. T

. u* R0 Y% n; B# O* Wdef file2list(filename):  
' @4 @1 i" e* ~* F* A    fr = open(filename)  2 k8 l# G  z  P% R* d- u- [
    array = fr.readlines() #以文件中的每行为一个元素,形成一个list列表  " o# Q, M$ B' i/ [
    num = len(array)  
0 a3 K2 q& w5 M: S9 O    returnMat = zeros((num,3))#初始化元素为0的,行号数个列表,其中每个元素仍是列表,元素数是3,在此表示矩阵  % @5 o1 s! b  f) g  l' b$ M
    index = 0   7 \1 p1 \. H2 v: I" Y/ \
    for line in array:  
0 @% X( \2 m1 |. K& C& q5 E5 s        line = line.strip()#去掉一行后的回车符号  8 \" g' f+ i$ b% l
        linelist = line.split(' ')#将一行根据分割符,划分成多个元素的列表  : }# S. h5 H. Z* ~+ l
        returnMat[index,:] = linelist[0:3]#向矩阵赋值,注意这种赋值方式比较笨拙  $ p" \) e' g4 a, i
        index +=1  
9 Y% j, h3 G6 f3 m% O( g# t( Q/ ^    return returnMat( e0 K8 [( X( ?. e$ z5 o6 U

' Z- s0 t7 v, a# I6 u. Zfname = 'E:\Pythonrun\myuse\num_data.txt'& {+ y9 c$ }/ S2 |
data= file2list(fname)

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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