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

python读取Matlab的.mat数据

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

5 C* h& b+ }3 n鉴于以后的目标主要是利用现有的Matlab数据(.mat或者.txt),主要考虑python导入Matlab数据的问题。以下代码可以解决python读取.mat文件的问题。主要使用sicpy.io即可。sicpy.io提供了两个函数loadmat和savemat,非常方便。
3 K7 `6 K/ X7 }  j! L5 o# adapted from3 y, D' g, h! _7 f9 q
import scipy.io as sio  
7 ], R5 c' Z7 T9 O  Q9 I#import matplotlib.pyplot as plt$ M% W. N  W' m
from pylab import *7 E* Q9 q0 N1 T) U$ G: S
import numpy as np  6 f8 X9 \! N  i; U1 @
  0 j' v- O+ v' |* L+ z$ y
matfn='E:\Pythonrun\myuse\matdata.mat'   # the path of .mat data
& C$ Z$ _0 {: |" J4 {# S; Kdata=sio.loadmat(matfn)  
7 M1 O6 k6 ~2 T- o+ S4 p" c  9 @6 T. s6 V/ l
xx=data['matdata']: C6 @5 h: A0 T0 z% ^  z- Y- p
figure(1)
  o7 p/ U  _8 H  s4 K2 |8 Splot(xx)
1 K2 E" }1 w" R" S0 f6 Ashow()$ X/ W! l& N' V% N5 H& L3 q
3 y# C% H2 l' g4 O$ v. t
以下代码是读入txt数据并转换成数组,方法比较笨,更有效的方法待研究。  S4 C6 k, g" q& y" G) L
from numpy import *9 \; G7 j5 k0 ]/ m* Z2 J& M6 V
0 T0 b. {5 {% L3 c" S3 o$ d4 D
def file2list(filename):  ! O* B: @* \/ D7 x+ b' g) \) P
    fr = open(filename)  * q, i/ ]. J, J* |
    array = fr.readlines() #以文件中的每行为一个元素,形成一个list列表  5 ?) b; m+ S$ v) Z
    num = len(array)  / h; R) G  q0 @4 c" u  u, k
    returnMat = zeros((num,3))#初始化元素为0的,行号数个列表,其中每个元素仍是列表,元素数是3,在此表示矩阵  + v% x; l7 i5 U+ V% Y3 O
    index = 0   
2 Q0 M$ `5 `9 c; f    for line in array:  * K3 p6 P9 X$ A
        line = line.strip()#去掉一行后的回车符号  ' Q6 N6 C# |% h3 e3 U* n1 _6 W+ s
        linelist = line.split(' ')#将一行根据分割符,划分成多个元素的列表  
! ?% @% k3 c- E        returnMat[index,:] = linelist[0:3]#向矩阵赋值,注意这种赋值方式比较笨拙  9 k! o$ {  L2 _" z
        index +=1  
; |" M6 E( s  b4 u. ~1 f    return returnMat- j% }1 w* e+ L7 G

' x0 {( i# }' F9 G, efname = 'E:\Pythonrun\myuse\num_data.txt'
) g% y; {3 w0 q6 r# ^6 wdata= file2list(fname)

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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