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

python读取Matlab的.mat数据

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

) D( o8 ^0 q3 h- B: G( e鉴于以后的目标主要是利用现有的Matlab数据(.mat或者.txt),主要考虑python导入Matlab数据的问题。以下代码可以解决python读取.mat文件的问题。主要使用sicpy.io即可。sicpy.io提供了两个函数loadmat和savemat,非常方便。
. t& Q# P0 g% w' W( l# adapted from
- ?! Q: Y% M% ]$ u' Z4 G- ?import scipy.io as sio  . S0 @! t! c" \
#import matplotlib.pyplot as plt
6 a+ Z4 D$ v5 Bfrom pylab import *; \4 z) Z+ P$ q5 c( i' W* o
import numpy as np  ' x/ a  p2 R8 t
  
1 W7 B+ Q1 |4 t5 o0 y* Omatfn='E:\Pythonrun\myuse\matdata.mat'   # the path of .mat data
5 J0 {. w  g' r6 @+ v. E; n. @data=sio.loadmat(matfn)  
0 Q6 L" G. J& F+ S1 s; S: ]  ) ?* D! p$ p1 ^" E; d
xx=data['matdata']
  h) U  C# p1 G; h0 h7 _figure(1)1 [0 ?# }' ?1 `: a0 B5 a* G
plot(xx)  N1 C5 @$ f+ g0 w7 n: K$ g+ `% G
show()
% o' @! d4 U4 r4 J* U, l
  R1 f; s. i4 C: {以下代码是读入txt数据并转换成数组,方法比较笨,更有效的方法待研究。4 f& S; g' ~7 [
from numpy import *
, v% g7 f* _# v8 y7 }
1 w& D6 l1 u$ W1 [: }1 h" ydef file2list(filename):  
. Y: ?; q* s1 x7 y. [) \/ W2 _" A9 x    fr = open(filename)  
" W: b' c( g$ h, k1 o    array = fr.readlines() #以文件中的每行为一个元素,形成一个list列表  / r' Q( ?" ^/ x% K
    num = len(array)  ) F- ^7 J# U: H8 f
    returnMat = zeros((num,3))#初始化元素为0的,行号数个列表,其中每个元素仍是列表,元素数是3,在此表示矩阵  ! w0 k' O. N' X- ^2 v9 F
    index = 0   2 |% C$ N6 e) T' Y2 y7 z# O
    for line in array:  
8 X; e6 y! ^+ }& g/ {9 K0 t4 B2 R        line = line.strip()#去掉一行后的回车符号  
& m8 ]' p, D6 q$ C        linelist = line.split(' ')#将一行根据分割符,划分成多个元素的列表  
3 t0 ?4 U% j9 l2 g, n4 H        returnMat[index,:] = linelist[0:3]#向矩阵赋值,注意这种赋值方式比较笨拙  ' F# K) i: j* S# q& I# u- @' r
        index +=1  
+ i* ~! U# {& N2 A# T/ O) [8 g    return returnMat( ^: U. Z- Y4 ~- @, x
1 Q" F7 B& d$ u( V8 u& A: N
fname = 'E:\Pythonrun\myuse\num_data.txt'
  a2 D/ v7 F8 U; wdata= file2list(fname)

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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