scipy.io.matlab.

whosmat#

scipy.io.matlab.whosmat(имя_файла, appendmat=True, **kwargs)[источник]#

Перечислите переменные внутри файла MATLAB.

Параметры:
имя_файлаstr

Имя mat-файла (расширение .mat не требуется, если appendmat==True) Также можно передать открытый файлоподобный объект.

appendmatbool, необязательно

True для добавления расширения .mat к имени файла, если оно ещё не присутствует. По умолчанию True.

byte_orderstr или None, опционально

None по умолчанию, что подразумевает угадывание порядка байтов из mat-файла. В противном случае может быть одним из ('native', '=', 'little', '<', 'BIG', '>').

mat_dtypebool, необязательно

Если True, возвращать массивы в том же типе данных, как если бы они загружались в MATLAB (вместо типа данных, с которым они сохранены).

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 или как массивы NumPy старого стиля с dtype=object. Установка этого флага в False воспроизводит поведение SciPy версии 0.7.x (возвращая объектные массивы numpy). Значение по умолчанию - True, так как это позволяет более простую загрузку и сохранение MATLAB-файлов.

Возвращает:
переменныесписок кортежей

Список кортежей, где каждый кортеж содержит имя матрицы (строка), её форму (кортеж целых чисел) и класс данных (строка). Возможные классы данных: int8, uint8, int16, uint16, int32, uint32, int64, uint64, single, double, cell, struct, object, char, sparse, function, opaque, logical, unknown.

Примечания

Поддерживаются mat-файлы версий v4 (Level 1.0), v6 и v7 до 7.2.

Вам потребуется библиотека HDF5 для Python, чтобы читать файлы mat формата MATLAB 7.3 (например, 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')]