scipy.io.matlab.

whosmat#

scipy.io.matlab.whosmat(file_name, appendmat=True, **kwargs)[source]#

列出 MATLAB 檔案內的變數。

參數:
file_name字串

mat 檔案的名稱 (如果 appendmat==True,則不需要 .mat 副檔名)。也可以傳遞開啟的類檔案物件。

appendmat布林值,選填

如果給定的檔名尚未存在,則 True 會將 .mat 副檔名附加到檔名末尾。預設值為 True。

byte_order字串或 None,選填

預設為 None,表示從 mat 檔案猜測位元組順序。否則可以是 ('native', '=', 'little', '<', 'BIG', '>').

mat_dtype布林值,選填

如果為 True,則傳回與載入 MATLAB 時相同的 dtype 陣列 (而不是儲存時的 dtype)。

squeeze_me布林值,選填

是否壓縮單位矩陣維度。

chars_as_strings布林值,選填

是否將字元陣列轉換為字串陣列。

matlab_compatible布林值,選填

傳回與 MATLAB 載入時相同的矩陣 (表示 squeeze_me=False、chars_as_strings=False、mat_dtype=True、struct_as_record=True)。

struct_as_record布林值,選填

是否將 MATLAB 結構體載入為 NumPy 記錄陣列,或載入為 dtype=object 的舊式 NumPy 陣列。將此旗標設定為 False 會複製 SciPy 0.7.x 版本的行為 (傳回 numpy 物件陣列)。預設設定為 True,因為它允許更輕鬆地往返載入和儲存 MATLAB 檔案。

回傳:
variables元組列表

元組的列表,其中每個元組包含矩陣名稱 (字串)、其形狀 (整數元組) 及其資料類別 (字串)。可能的資料類別有:int8、uint8、int16、uint16、int32、uint32、int64、uint64、single、double、cell、struct、object、char、sparse、function、opaque、logical、unknown。

註解

支援 v4 (Level 1.0)、v6 和 v7 至 7.2 mat 檔案。

您需要 HDF5 python 函式庫才能讀取 matlab 7.3 格式的 mat 檔案 (例如 h5py)。由於 SciPy 未提供,因此我們在此處未實作 HDF5 / 7.3 介面。

在版本 0.12.0 中新增。

範例

>>> from io import BytesIO
>>> import numpy as np
>>> from scipy.io import savemat, whosmat

建立一些陣列,並使用 savemat 將它們寫入 BytesIO 實例。

>>> a = np.array([[10, 20, 30], [11, 21, 31]], dtype=np.int32)
>>> b = np.geomspace(1, 10, 5)
>>> f = BytesIO()
>>> savemat(f, {'a': a, 'b': b})

使用 whosmat 檢查 f。輸出列表中的每個元組都會提供 f 中陣列的名稱、形狀和資料類型。

>>> whosmat(f)
[('a', (2, 3), 'int32'), ('b', (1, 5), 'double')]