scipy.io.

whosmat#

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

Variablen in einer MATLAB-Datei auflisten.

Parameter:
file_namestr

Name der Mat-Datei (die Erweiterung .mat ist nicht erforderlich, wenn appendmat==True). Kann auch ein offenes dateiähnliches Objekt übergeben werden.

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

Ob MATLAB-Strukturen als NumPy-Record-Arrays oder als alte NumPy-Arrays mit dtype=object geladen werden sollen. Wenn dieses Flag auf False gesetzt wird, wird das Verhalten von SciPy Version 0.7.x nachgebildet (Rückgabe von NumPy-Objekt-Arrays). Die Standardeinstellung ist True, da dies ein einfacheres Round-Trip-Laden und -Speichern von MATLAB-Dateien ermöglicht.

Rückgabe:
variablenListe von Tupeln

Eine Liste von Tupeln, wobei jedes Tupel den Matrixnamen (einen String), seine Form (ein 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 MATLAB 7.3-Format zu lesen (z. B. h5py). Da SciPy keine solche bereitstellt, 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')]