scipy.io.matlab.

whosmat#

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

Variablen in einer MATLAB-Datei auflisten.

Parameter:
file_namestr

Name der Mat-Datei (die Endung .mat wird nicht benötigt, wenn appendmat==True) Kann auch ein geöffnetes dateiähnliches Objekt sein.

appendmatbool, optional

True, um die Endung .mat an den gegebenen Dateinamen anzuhängen, falls sie noch nicht vorhanden ist. Standard ist True.

byte_orderstr oder None, optional

Standardmäßig None, was bedeutet, dass die Byte-Reihenfolge aus der Mat-Datei erraten wird. Andernfalls kann es eine der folgenden Optionen sein: (‘native’, ‘=’, ‘little’, ‘<’, ‘BIG’, ‘>’).

mat_dtypebool, optional

Wenn True, werden Arrays im gleichen dtype zurückgegeben, wie sie in MATLAB geladen würden (anstelle des dtypes, mit dem sie gespeichert wurden).

squeeze_mebool, optional

Gibt an, ob Einheitsdimensionen verkleinert werden sollen oder nicht.

chars_as_stringsbool, optional

Gibt an, ob Zeichen-Arrays in String-Arrays konvertiert werden sollen.

matlab_compatiblebool, optional

Gibt Matrizen zurück, wie sie von MATLAB geladen würden (impliziert squeeze_me=False, chars_as_strings=False, mat_dtype=True, struct_as_record=True).

struct_as_recordbool, optional

Gibt an, ob MATLAB-Strukturen als NumPy-Record-Arrays oder als alte NumPy-Arrays mit dtype=object geladen werden sollen. Das Setzen dieses Flags auf False repliziert das Verhalten von SciPy-Version 0.7.x (Rückgabe von NumPy-Objekt-Arrays). Die Standardeinstellung ist True, da sie einen einfacheren Round-Trip-Lade- und Speichervorgang von MATLAB-Dateien ermöglicht.

Rückgabe:
variablesListe von Tupeln

Eine Liste von Tupeln, wobei jedes Tupel den Matrixnamen (einen String), seine Form (Tupel von ganzen Zahlen) und seine Datenklasse (einen String) enthält. Mögliche Datenklassen sind: int8, uint8, int16, uint16, int32, uint32, int64, uint64, single, double, cell, struct, object, char, sparse, function, opaque, logical, unknown.

Hinweise

Mat-Dateien der Versionen v4 (Level 1.0), v6 und v7 bis 7.2 werden unterstützt.

Sie benötigen eine HDF5 Python-Bibliothek, um Mat-Dateien im Format MATLAB 7.3 zu lesen (z. B. h5py). Da SciPy keine mitliefert, implementieren wir die HDF5 / 7.3-Schnittstelle hier nicht.

Hinzugefügt in Version 0.12.0.

Beispiele

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

Erstellen Sie einige Arrays und verwenden Sie savemat, um sie in eine BytesIO-Instanz zu schreiben.

>>> 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})

Verwenden Sie whosmat, um f zu inspizieren. Jedes Tupel in der Ausgabeliste gibt den Namen, die Form und den Datentyp des Arrays in f an.

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