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

python读取Matlab的.mat数据

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

4 }6 t/ W: g' J4 q9 {/ N! X) ?鉴于以后的目标主要是利用现有的Matlab数据(.mat或者.txt),主要考虑python导入Matlab数据的问题。以下代码可以解决python读取.mat文件的问题。主要使用sicpy.io即可。sicpy.io提供了两个函数loadmat和savemat,非常方便。7 }; B3 m* W) p  B5 m/ |+ i
# adapted from$ |6 Q6 b+ I: e, T) C0 h; h
import scipy.io as sio  5 E0 h3 r" V/ ?3 L8 T
#import matplotlib.pyplot as plt
2 h; y0 V+ _) a+ S: V1 _from pylab import *5 ^+ Q# |, F5 {0 [. \) v' r
import numpy as np  
! k6 K+ V# T! H, `; ^: {  
' A: Y# @  B: Y7 [matfn='E:\Pythonrun\myuse\matdata.mat'   # the path of .mat data
( |  j4 O/ E# o2 N: Q  J1 W9 @data=sio.loadmat(matfn)  2 W$ t% Y$ w$ [" s, W
  
# H  x  j' c2 }% m5 nxx=data['matdata']
, I8 }& c' V: W( N/ ?- I% ffigure(1)
4 V$ \2 ?6 L6 eplot(xx)3 ^9 o) f4 b: G' A7 y2 r
show()
* t9 O( e+ G7 Q1 E. C5 x2 c' M9 j; F: `3 z& s3 n# t' p3 V
以下代码是读入txt数据并转换成数组,方法比较笨,更有效的方法待研究。5 B1 }' z& q# C4 S! D) c$ }
from numpy import *; h8 ^% Q8 |9 u" a' B. S+ d
0 t, g/ Q7 [# \7 d" X
def file2list(filename):  " u& i8 [# K9 ^: u8 E; T
    fr = open(filename)  
; k! K) r9 H- J3 v    array = fr.readlines() #以文件中的每行为一个元素,形成一个list列表  ) o: i9 v1 j. S) U2 X. m
    num = len(array)  / r8 K3 j. W* Z( X1 J7 |# s: ^
    returnMat = zeros((num,3))#初始化元素为0的,行号数个列表,其中每个元素仍是列表,元素数是3,在此表示矩阵  
+ F8 ?+ \, Y. l- c4 q; A" `7 N7 _( s    index = 0   + W* k5 i- f9 m! t: d
    for line in array:  
' E# N& l5 j5 R; D/ ~0 m        line = line.strip()#去掉一行后的回车符号  
: Y" V3 Y/ y) ]5 j" B2 N        linelist = line.split(' ')#将一行根据分割符,划分成多个元素的列表  - p/ _& L0 h, c3 W1 s) R
        returnMat[index,:] = linelist[0:3]#向矩阵赋值,注意这种赋值方式比较笨拙  - [! S2 M) n* D+ V9 K# G6 i; v
        index +=1  
# r: C! e) V3 c) f    return returnMat9 C- w/ I. i' F+ ]# k8 l9 e# `

8 g" e* X5 w" U8 N; O6 x$ l5 Nfname = 'E:\Pythonrun\myuse\num_data.txt'( U" V  ?8 ^: l. t
data= file2list(fname)

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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