whosmat#
- scipy.io.whosmat(file_name, appendmat=True, **kwargs)[原始碼]#
列出 MATLAB 檔案內的變數。
- 參數:
- file_namestr
mat 檔案的名稱 (如果 appendmat==True,則不需要 .mat 副檔名)。也可以傳遞開啟的類檔案物件。
- appendmatbool,選用
如果給定的檔名結尾沒有 .mat 副檔名,則為 True 以附加 .mat 副檔名。預設值為 True。
- byte_orderstr 或 None,選用
預設為 None,表示位元組順序從 mat 檔案猜測而來。否則可以是 (‘native’, ‘=’, ‘little’, ‘<’, ‘BIG’, ‘>’) 之一。
- mat_dtypebool,選用
如果為 True,則傳回與載入到 MATLAB 時相同的 dtype 陣列 (而不是它們儲存時的 dtype)。
- squeeze_mebool,選用
是否壓縮單位矩陣維度。
- chars_as_stringsbool,選用
是否將字元陣列轉換為字串陣列。
- matlab_compatiblebool,選用
傳回的矩陣如同 MATLAB 載入的一樣 (表示 squeeze_me=False、chars_as_strings=False、mat_dtype=True、struct_as_record=True)。
- struct_as_recordbool,選用
是否將 MATLAB 結構體載入為 NumPy 記錄陣列,或作為 dtype=object 的舊式 NumPy 陣列。將此旗標設定為 False 會複製 SciPy 0.7.x 版本的行為 (傳回 numpy 物件陣列)。預設設定為 True,因為它允許更輕鬆地往返載入和儲存 MATLAB 檔案。
- 傳回值:
- variablestuple 列表
tuple 的列表,其中每個 tuple 保留矩陣名稱 (字串)、其形狀 (整數 tuple) 及其資料類別 (字串)。可能的資料類別為: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
中陣列的名稱、形狀和資料類型會顯示在輸出列表的每個 tuple 中。>>> whosmat(f) [('a', (2, 3), 'int32'), ('b', (1, 5), 'double')]