python——讀取MATLAB數據文件 *.mat


鑒於以后的目標主要是利用現有的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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM