您的位置:首页 > 编程语言 > MATLAB

python——读取MATLAB数据文件 *.mat

2016-08-15 13:24 721 查看
鉴于以后的目标主要是利用现有的Matlab数据(.mat或者.txt),主要考虑python导入Matlab数据的问题。以下代码可以解决python读取.mat文件的问题。主要使用sicpy.io即可。sicpy.io提供了两个函数loadmat和savemat,非常方便。
# adapted from http://blog.csdn.net/rumswell/article/details/8545087
import scipy.io as sio
#import matplotlib.pyplot as plt
from pylab import *
import numpy as np

matfn='E:\\Pythonrun\\myuse\\matdata.mat' # the path of .mat data
data=sio.loadmat(matfn)

xx=data['matdata']
figure(1)
plot(xx)
show()

以下代码(http://blog.csdn.net/gadfly7/article/details/9906315)是读入txt数据并转换成数组,方法比较笨,更有效的方法待研究。

from numpy import *

def file2list(filename):
fr = open(filename)
array = fr.readlines() #以文件中的每行为一个元素,形成一个list列表
num = len(array)
returnMat = zeros((num,3))#初始化元素为0的,行号数个列表,其中每个元素仍是列表,元素数是3,在此表示矩阵
index = 0
for line in array:
line = line.strip()#去掉一行后的回车符号
linelist = line.split(' ')#将一行根据分割符,划分成多个元素的列表
returnMat[index,:] = linelist[0:3]#向矩阵赋值,注意这种赋值方式比较笨拙
index +=1
return returnMat

fname = 'E:\\Pythonrun\\myuse\\num_data.txt'
data= file2list(fname)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: