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')]