MATLAB MAT -Datei E/A -Bibliothek
Matio ist eine Open-Source-C-Bibliothek zum Lesen und Schreiben von Binär-Matlab-MAT-Dateien. Diese Bibliothek ist für Programme/Bibliotheken ausgelegt, die keinen Zugriff haben oder nicht auf die gemeinsam genutzten Bibliotheken von MATLAB verlassen möchten.
Sie können den Betreuer per E-Mail unter t [email protected] kontaktieren.
Die folgenden Personen/Organisationen haben bei der Entwicklung von Matio durch Patches, Fehlerberichte und/oder Tests geholfen:
Wenn Sie an Zusammenarbeit interessiert sind, wenden Sie sich an den Betreuer per E -Mail (siehe Abschnitt 1.1).
Fragen können mit den Foren auf der Quellforge -Website -Hosting -Matio gestellt werden.
Fehler, Verbesserungen usw. sollten mit einem der Trackers auf der SourceForge -Seite eingereicht werden.
In diesem Abschnitt wird beschrieben, wie man Matio baut. Abschnitt 2.1 beschreibt die Abhängigkeiten, Abschnitt 2.2, wie Sie Matio erstellen/testen, und in Abschnitt 2.3 dokumentiert die Plattformen, auf die Matio geprüft wurde.
Matio hat zwei optionale Abhängigkeiten. Diese sind nicht erforderlich, damit die Software funktioniert, aber ohne sie können einige Dateien unlesbar sind. ZLIB ist erforderlich, um MAT -Dateien der Stufe 5 zu lesen/zu schreiben, die Komprimierung verwenden. HDF5 muss mit neueren MAT-Dateien arbeiten, die die HDF5-Format-Dateien verwenden.
Um komprimierte MAT -Dateien zu unterstützen, ist die ZLIB -Version ≥ 1.2.3 erforderlich. Die ZLIB -Software kann von http://zlib.net/ heruntergeladen werden.
Die Unterstützung für die MAT -Datei Version 7.3 erfordert die HDF5 -Bibliothek. Diese Bibliothek kann von https://www.hdfgroup.org/ heruntergeladen werden. Matio benötigt HDF5 -Version ≥ 1,8.x. Weder veraltete HDF5 1.6.X-API-Funktionen noch HDF5-Funktionen auf höherer Ebene werden aufgerufen.
--with-default-api-version=v18 ).--with-default-api-version=v110 ) oder mit veralteten API-Version 1.8 (dh --with-default-api-version=v18 ).--with-default-api-version=v112 ) oder mit veralteten API-Version 1.10 (dh --with-default-api-version=v110 ) oder mit abgeschriebenen API-Version 1.8 (IE --with-default-api-version=v18 ).--with-default-api-version=v114 ), or with deprecated API version 1.12 (ie --with-default-api-version=v112 ), or with deprecated API version 1.10 (ie --with-default-api-version=v110 ) or with deprecated API version 1.8 (dh --with-default-api-version=v18 ). Für Windows können die vorgefertigten Binärdateien verwendet werden, die auch eine DLL von ZLIB enthalten, um die ZLIB-Abhängigkeit zu erfüllen. Für Ubuntu sollte sudo apt install libhdf5-dev einwandfrei funktionieren.
Die primäre Methode zum Erstellen der Software ist mit GNU -Autotools unter Verwendung von configure , gefolgt von make . Nach dem Erstellen kann der Testsuite ausgeführt werden, um die Software mithilfe von make check zu testen. Die Software kann mit make install installiert werden. Zum Beispiel,
git clone git://git.code.sf.net/p/matio/matio
cd matio
git submodule update --init # for datasets used in unit tests
./autogen.sh
./configure
make
make check
make installWenn einer der Tests im Testsuite fehlschlägt, sollten Sie den Fehler mit dem Tracker melden (siehe Abschnitt 1.4). Sie sollten die generierte Testsuite.log -Datei an den Fehlerbericht anhängen.
Das zum Erstellen der Software verwendete Konfigurationsskript bietet eine Reihe von Optionen. In diesem Abschnitt werden die Schlüsseloptionen beschrieben.
--enable-mat73=yes Dieses Flag ermöglicht die Unterstützung für Version 7.3 MAT-Dateien. Die Option ist nur sinnvoll, wenn er mit HDF5 als Unterstützung für Version 7.3 erstellt wird. Es wird deaktiviert, wenn HDF5 nicht verfügbar ist.--enable-extended-sparse=yes Diese Option ermöglicht erweiterte spärliche Matrixdatentypen, die in Matlab nicht unterstützt werden. MATLAB unterstützt nur doppelte Präzisionsdaten. Mit diesem Flag liest Matio spärliche Daten mit anderen Typen (dh Einzelprezision und ganzzahligen Typen).--with-matlab=DIR Diese Option gibt das Verzeichnis (DIR) mit dem Programm 'Matlab' an. Mit dieser Option prüft der Testsuite, dass die von Matio geschriebenen Matio -Dateien in Matlab gelesen werden können. Ohne diesen wird der Test nur überprüfen, ob Matio die geschriebene Datei lesen kann und wenn erfolgreich der Test übersprungen wird. Wenn Matio die Datei nicht lesen kann, schlägt der Test fehl.--with-zlib=DIR Diese Option gibt das Präfix an, in dem ZLIB installiert ist (siehe Abschnitt 2.1.1, um Informationen zu ZLIB zu erhalten).--with-hdf5=DIR Diese Option gibt das Präfix an, in dem die HDF5-Software installiert ist (siehe Abschnitt 2.1.2 Informationen zu HDF5).--with-default-file-ver=version Diese Option legt die Standard-MAT-Dateiversion (4,5,7.3) fest, die beim Schreiben verwendet wird. Die Standarddateiversion wird vom MAT_CREATE -Makro und der MAT_Createver -Funktion verwendet, wenn mat_ft_default für das Versionsargument verwendet wird.--with-libdir-suffix=suffix Diese Option gibt ein Suffix an, das bei der Installation und Suche nach abhängigen Bibliotheken (dh HDF5 und ZLIB) für Bibliotheksverzeichnisse angewendet wird. Beispielsweise installieren einige Linux-Verteilungen mit mehreren Archien 64-Bit-Bibliotheken in Bibliotheken LIB64 und 32-Bit in Lib. Das CMake -Build -System wird als alternatives Build -System unterstützt, das normalerweise aus drei Schritten für Konfiguration, Erstellung und Installation besteht. Standardmäßig ist das CMAKE -Projekt auch für das Testen mit Cest konfiguriert. Zum Beispiel,
git clone git://git.code.sf.net/p/matio/matio
cd matio
git submodule update --init # for datasets used in unit tests
cmake .
cmake --build .
ctest --test-dir .
cmake --install .Die folgenden matiospezifischen Optionen zum Aufbau mit CMAKE sind verfügbar.
MATIO_USE_CONAN:BOOL=OFF dieser Option ermöglicht es dem Conan -Paket -Manager, die Bibliotheksabhängigkeiten zu beheben. Nur Conan 1.x wird unterstützt.MATIO_DEFAULT_FILE_VERSION:STRING=5 Diese Option legt die Standard -MAT -Dateiversion (4,5,7.3) fest, die beim Schreiben verwendet wird.MATIO_EXTENDED_SPARSE:BOOL=ON dieser Option ermöglicht erweiterte spärliche Matrixdatentypen, die in MATLAB nicht unterstützt werden.MATIO_MAT73:BOOL=ON diesem Flag ermöglicht die Unterstützung für Version 7.3 MAT -Dateien.MATIO_PIC:BOOL=ON Ermöglicht diese Option einen positiv -unabhängigen Code (PIC), dh die Kompilierung mit der -fPIC -Flagge. Es wird für Visual Studio Builds ignoriert.MATIO_SHARED:BOOL=ON dieser Option erstellt die Matio -Bibliothek als gemeinsam genutztes Objekt (dh eine dynamische Linkbibliothek unter Windows).MATIO_WITH_HDF5:BOOL=ON dieser Option kann CMAKE die Verfügbarkeit der HDF5 -Bibliothek überprüfen (Informationen zu HDF5 finden Sie in Abschnitt 2.1.2).MATIO_WITH_ZLIB:BOOL=ON dieser Option kann CMAKE die Verfügbarkeit der ZLIB -Bibliothek überprüfen (Informationen zu ZLIB finden Sie in Abschnitt 2.1.1).MATIO_BUILD_TESTING:BOOL=ON dieser Option ermöglicht das Matio Testsuite für ctest.MATIO_ENABLE_CPPCHECK:BOOL=OFF dieser Option ermöglicht CMake ≥ 3.10, eine statische Analyse mit CPPCheck durchzuführen. To help CMake find the HDF5 libraries, set environment variable HDF5_DIR to the cmake/hdf5 directory (containing hdf5-config.cmake ) inside the HDF5 build or installation directory, or call cmake with -DHDF5_DIR="dir/to/hdf5/cmake/hdf5" . Alternativ rufen Sie CMake mit -DCMAKE_PREFIX_PATH="dir/to/hdf5/cmake" . Weitere Informationen finden Sie in den HDF5 -Anweisungen. Die Verwendung von hdf5-config wird bei der Verwendung von CMAKes integriertem FindHDF5 empfohlen, insbesondere für statische Builds. CMake 3.10 oder höher wird empfohlen.
Visual Studio -Lösungen werden für VS2008 und als Matio.sln für VS2010 (und neuer) als Matio_VS2008.sln bereitgestellt. Die Debug- und Release -Konfigurationen beider Lösungen sind eingerichtet, um eine DLL der Matio -Bibliothek (libmatio.dll) und das Matdump -Tool zu erstellen und anzunehmen, dass HDF5 im Verzeichnis verfügbar ist, das von der HDF5_DIR -Umgebungsvariable angegeben ist. Es wird angenommen, dass die gemeinsam genutzten Bibliotheken von HDF5 (und ZLIB) verfügbar sind. Wenn die statischen Bibliotheken von HDF5 (und ZLIB) installiert/erstellt werden, muss das Makro H5_BUILT_AS_STATIC_LIB definiert werden (anstelle von H5_BUILT_AS_DYNAMIC_LIB ). Darüber hinaus ist die Release -LIB -Konfiguration der VS2010 -Lösung eingerichtet, um eine statische LIB der Matio -Bibliothek (libmatio.lib) zu erstellen, und geht davon aus, dass die statischen Bibliotheken von HDF5 (und ZLIB) installiert/gebaut werden.
Ein Testsuite ist beim Aufbau mit den GNU -Autotools erhältlich. Konfigurieren und erstellen Sie Matio, um die Testsuite auszuführen. Nach dem Gebäude rennen make check , um den Testsuite zu betreiben. Wenn Matio ohne ZLIB erstellt wurde, werden die komprimierten variablen Tests übersprungen. Wenn er ohne HDF5 erstellt wurde, werden die Tests für die MAT -Dateien von Version 7.3 übersprungen. Wenn der Pfad zur MATLAB-Anwendung nicht angegeben wurde ( --with-matlab ), fehlschlagen die Schreibtests, wenn Matio die Datei nicht lesen kann, und überspringen kann, wenn Matio die Datei lesen kann. Die Schreibtests bestehen bestehen, wenn MATLAB verfügbar ist und auch die Datei lesen kann.
Um Matio Testsuite-Fehler zu melden, komprimieren Sie die Datei testSuite.log im Test-Unterabschnitt des Build-Verzeichnisses. Laden Sie die komprimierte Protokolldatei zusammen mit einem Fehlerbericht hoch (siehe Abschnitt 1.4, um Informationen zu Meldungsfehler zu erhalten).
Die Bibliothek wurde unter Linux, Windows und OS X getestet/verwendet, einschließlich der Architektur Little-Endian und Big-Endian.
Diese Software wird unter einer vereinfachten BSD -Lizenz bereitgestellt. Weitere Informationen zur Lizenz finden Sie in der Kopierdatei.
MATLAB ist eine eingetragene Marke der MathWorks, Inc.