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

python读取Matlab的.mat数据

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
% _1 B; g+ z' a* ^! @
鉴于以后的目标主要是利用现有的Matlab数据(.mat或者.txt),主要考虑python导入Matlab数据的问题。以下代码可以解决python读取.mat文件的问题。主要使用sicpy.io即可。sicpy.io提供了两个函数loadmat和savemat,非常方便。' P# t6 X0 ~' g1 d; Q
# adapted from
2 U5 g. Z$ p% B% ?# u& K, F% Ximport scipy.io as sio  7 d7 Q+ ?, g: ?" `
#import matplotlib.pyplot as plt+ X; t/ ^' {% J; F! l
from pylab import *! D0 q0 |& _: o/ I& I- ^: J0 K6 A
import numpy as np  
: @) ^5 V7 X+ `' U# T0 P) \+ M3 n  1 _  r5 t2 d' d' b6 b* O: B& F  Q2 E1 {
matfn='E:\Pythonrun\myuse\matdata.mat'   # the path of .mat data
6 N$ i$ H0 F9 ~' Bdata=sio.loadmat(matfn)    E" u2 z- F6 N- H
  
8 g* w% I1 y1 ?1 D# A# jxx=data['matdata']# t- W- I9 b5 g# L" R% v" s" W
figure(1)4 ?' p/ r0 G, ~/ A2 K1 ]
plot(xx)- X3 }5 L2 v2 E6 Z+ ?
show()
+ ~5 w4 x1 w+ S4 U: |% V6 O8 F1 Q5 q& S- }$ |- K" k
以下代码是读入txt数据并转换成数组,方法比较笨,更有效的方法待研究。. l! \. D- d5 a% l; a- }
from numpy import *- ?% _0 I4 ^8 L1 X! H5 g8 }

: c& B- {. H/ W1 Y' L+ J& h4 W) n* g6 ~def file2list(filename):  - g) v- K4 c. W8 w7 g3 Y5 }: a5 Q# ~/ J2 ?
    fr = open(filename)  - Z) ]+ G: k) g5 t8 Q* o
    array = fr.readlines() #以文件中的每行为一个元素,形成一个list列表  
8 V, Y3 l0 I. x& M5 d    num = len(array)  6 ~6 `- N, o+ @; ], h, ~
    returnMat = zeros((num,3))#初始化元素为0的,行号数个列表,其中每个元素仍是列表,元素数是3,在此表示矩阵  & s2 L0 A$ X& v; N
    index = 0   ( ]- |5 i; w+ S; D% q
    for line in array:  
9 S; G! U( A( k" O; ?        line = line.strip()#去掉一行后的回车符号  / A( J' q& J* x" C# z9 X- o6 z: I
        linelist = line.split(' ')#将一行根据分割符,划分成多个元素的列表  
, p' Z' h% A5 L1 A) m' R        returnMat[index,:] = linelist[0:3]#向矩阵赋值,注意这种赋值方式比较笨拙  
9 J# p; |* c4 S3 e7 e        index +=1  
2 r* c+ z' y3 f' v; N    return returnMat5 I9 }. V3 G) l1 s" S5 i" J% I

0 V( j  e* z3 m3 |3 J% V/ ?fname = 'E:\Pythonrun\myuse\num_data.txt'
/ t1 D9 v6 Q* `$ ~) T, }2 Y- qdata= file2list(fname)

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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