Normalerweise ist die Nachricht File signature not found
zeigt entweder:
1. Ihre Datei beschädigt ist.
... ist, was ich denke, ist am wahrscheinlichsten. Du hast gesagt, du hast die Dateien schon einmal geöffnet. Vielleicht haben Sie vergessen, Ihre Datei zu schließen, die die Datei beschädigen kann. Versuchen Sie, die Datei mit dem HDF5-Dienstprogramm zu überprüfen h5debug
(verfügbar in der Befehlszeile, wenn Sie die hdf5-lib auf Ihrem Betriebssystem installiert haben, überprüfen Sie mit dpkg -s libhdf5-dev
auf Linux).
2. Die Datei ist nicht im HDF5-Format.
Dies ist eine bekannte Ursache für Ihre Fehlermeldung. Aber da Sie gesagt haben, dass dies der Fall ist und Sie die Dateien schon einmal geöffnet haben, gebe ich dies nur als Referenz für andere, die hier stolpern könnten:
Seit Dezember 2015 (ab Version 7.3) , Matlab-Dateien verwenden das HDF5-basierte Format in ihrem MAT-File Level 5 Containers (mehr doc). Frühere Version MAT-Dateien (v4 (Stufe 1.0), v6 und v7 bis 7,2) werden unterstützt durch und können mit der scipy
Bibliothek gelesen werden:
import scipy.io
f = scipy.io.loadmat('dataset.mat')
Ansonsten können Sie andere Methoden versuchen und sehen, ob die Fehler bleibt:
PyTables ist eine Alternative zu h5py und wird gefunden here.
import tables
file = tables.openFile('test.mat')
Python MATLAB-Engine ist eine alternative MAT-Dateien zu lesen, wenn Sie Matlab installiert haben. Dokumentation finden Sie hier: MATLAB Engine API for Python.
import matlab.engine
mat = matlab.engine.start_matlab()
f = mat.load("dataset.mat", nargout=1)