1. 程式人生 > >通過python 讀MATLAB資料檔案 *.mat

通過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)