1、介紹
對於科學計算領域的數據分析工作,MATLAB是一個廣泛使用的工具。在某些情況下,Python成為第二重要的語言,可用於使用諸如Numpy和Scipy之類的庫的同樣任務。這就需要將MATLAB文件導入Python中。因此,使用Python中的SciPy庫中的scipy.io.loadmat函數可用於讀取MATLAB文件(擴展名為mat)。
2、正文
一、讀取mat文件
讀取MATLAB文件時應使用SciPy的io模塊。Scipy庫是專註於科學計算的Python庫,包含了數值積分、優化、插值、四ier轉換、信號處理等功能。loadmat函數是使用io的一個函數,用於讀取MATLAB文件。它需要.mat文件的路徑,並使用字典存儲轉換結果。
import scipy.io as sio
data = sio.loadmat('example.mat')
該函數返回一個字典,其中每個鍵代表.mat文件中的一個變量名。值與這些變量名相關聯的值是NumPy數組、NumPy數組的嵌套元組甚至一次函數結果的對象,這取決於.mat文件中用於存儲變量的數據類型。
二、改變默認鍵名
默認情況下,鍵名在.mat文件中存儲,但是可以使用squeeze_me和struct_as_record這兩個參數來改變這種行為。兩個參數的默認值都是False。如果將其設置為True,則可以選擇輸出更易於使用或處理的結果。
import scipy.io as sio
data = sio.loadmat('example.mat', squeeze_me=True, struct_as_record=True)
設置為True的squeeze_me參數可以將單個存儲變量的數組轉換為NumPy數組。struct_as_record參數可以使結構變量的鍵名由.mat文件中的名稱更改為與Python熟悉的點分網狀組織(dtype對象)。
三、過濾變量
有時候我們只需要加載文件中的一些變量。可以通過使用變量名作為列表(默認為空列表)傳遞的mdict參數來進行過濾。
import scipy.io as sio
data = sio.loadmat('example.mat', variable_names=['a', 'b'])
a = data['a']
b = data['b']
3、總結
使用scipy.io.loadmat的過程非常簡單。它返回一個字典對象,其中每個鍵存儲.mat文件中存儲的變量名。如果需要,還可以通過鍵名或過濾變量進行改進和過濾。新的科技進步不斷,Python與SciPy為科學計算賦予了新的可持續性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/240614.html