scipy.io.

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 檢查 ff 中陣列的名稱、形狀和資料類型會顯示在輸出列表的每個 tuple 中。

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