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

python读取Matlab的.mat数据

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
- Z$ w7 C9 O- K: ]
鉴于以后的目标主要是利用现有的Matlab数据(.mat或者.txt),主要考虑python导入Matlab数据的问题。以下代码可以解决python读取.mat文件的问题。主要使用sicpy.io即可。sicpy.io提供了两个函数loadmat和savemat,非常方便。  y/ q- e, u* Z) K8 b/ i; d6 O
# adapted from4 d( C: q' K& R5 r, b7 Y7 u2 W' n
import scipy.io as sio  $ ~, _/ w  O9 M4 `0 R
#import matplotlib.pyplot as plt
5 O- X3 H& d4 Ffrom pylab import *
0 _  o9 ~& a" P" ~import numpy as np  
% B( k* S( r  u  ( P9 Z; A7 e$ B# L. u. I
matfn='E:\Pythonrun\myuse\matdata.mat'   # the path of .mat data
& Q) U2 r4 R5 ^$ X" `data=sio.loadmat(matfn)  1 o$ N5 _" S7 X2 L, Q
  7 Q9 A, c: N% v2 y
xx=data['matdata']* Q; b0 J) v7 \& d% K
figure(1)
* _4 k: e7 ^6 N# i+ J* tplot(xx)9 |( o6 y6 v; d5 e7 U/ N) G
show()% p/ g- f' t# k" y# y# ^
( s1 j3 i; p" i) S$ j$ s
以下代码是读入txt数据并转换成数组,方法比较笨,更有效的方法待研究。
; U, L+ V* ]$ x$ R, Ufrom numpy import *
+ I1 P, o) S- p) m& n' |
: u, x6 J& N' e3 w" _* \def file2list(filename):  1 D7 n- d! l/ R! u7 A
    fr = open(filename)  ) ~* f" e7 i: [' O2 _  U
    array = fr.readlines() #以文件中的每行为一个元素,形成一个list列表  
) C2 p, u2 B4 e# v* f    num = len(array)  
$ c2 l( F2 m# N7 _$ P) p) M    returnMat = zeros((num,3))#初始化元素为0的,行号数个列表,其中每个元素仍是列表,元素数是3,在此表示矩阵  + E, ]: |0 }1 j3 E6 d8 |. r
    index = 0   
9 r: a& j& v6 \8 Y4 K' W# ~5 b    for line in array:  5 J4 d3 R6 l( Y! T$ s4 Z3 k/ E+ r  \# h
        line = line.strip()#去掉一行后的回车符号  
) Z8 e5 H3 i+ }0 _' K3 F. P. P3 k        linelist = line.split(' ')#将一行根据分割符,划分成多个元素的列表  
( J# C( d* O' \6 F& @: r        returnMat[index,:] = linelist[0:3]#向矩阵赋值,注意这种赋值方式比较笨拙  1 P6 O1 }" G. @! d  W: \
        index +=1  
2 W( i5 ?! |) E; \# x    return returnMat
/ r7 n+ K/ v. i- o' i3 B9 x- v- E. H' M6 k' @& X# y
fname = 'E:\Pythonrun\myuse\num_data.txt'% K0 @+ y: P/ |: _
data= file2list(fname)

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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