Matlab Mat File I/O庫
Matio是一個開源C庫,用於讀取和編寫二進制MATLAB MAT文件。該庫的設計旨在由無法訪問或不依賴Matlab的共享庫的程序/庫使用。
您可以通過電子郵件[email protected]與維護人員聯繫。
以下人員/組織通過補丁,錯誤報告和/或測試幫助了Matio:
如果您對協作感興趣,請通過電子郵件與維護人員聯繫(請參閱第1.1節)。
可以使用SourceForge網站上託管Matio的論壇提出問題。
錯誤,增強功能等應使用SourceForge頁面上的跟踪器之一提交。
本節介紹瞭如何構建Matio。第2.1節介紹了依賴項,第2.2節如何構建/測試Matio,第2.3節記錄了Matio已測試的平台。
Matio具有兩個可選的依賴性。這些軟件不需要這些工作,但是如果沒有它們,某些文件可能是不可讀的。 Zlib需要讀取/寫入使用壓縮的5個墊子文件。需要HDF5與使用HDF5-Format文件的較新的MAT文件一起使用。
為了支持壓縮的墊子文件,需要ZLIB版本≥1.2.3。可以從http://zlib.net/下載ZLIB軟件。
支持MAT文件版本7.3需要HDF5庫。該庫可以從https://www.hdfgroup.org/下載。 Matio需要HDF5版本≥1.8.x。不棄用的HDF5 1.6.X API函數和HDF5高級功能均未調用。
--with-default-api-version=v18 )進行HDF5配置。--with-default-api-version=v110 )的HDF5進行配置,或使用不推薦使用的API版本1.8(即--with-default-api-version=v18 )。--with-default-api-version=v112 --with-default-api-version=v110 )或--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版本1.8(即--with-default-api-version=v18 )。對於Windows,可以使用預編譯的二進製文件,其中還包括Zlib的DLL來滿足Zlib依賴性。對於Ubuntu, sudo apt install libhdf5-dev應該可以正常工作。
用於構建軟件的主要方法是使用guna autotools使用configure然後是make 。構建後,可以使用make check執行測試套件來測試軟件。可以使用make install安裝軟件。例如,
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 install如果測試套件中的任何測試失敗,則應使用跟踪器報告故障(請參見第1.4節)。您應該將生成的testsuite.log文件附加到錯誤報告。
用於構建軟件的配置腳本需要多個選項。本節描述了關鍵選項。
--enable-mat73=yes此標誌可以支持7.3版MAT文件。該選項僅在用HDF5構建作為對7.3版文件的支持時才有意義。如果HDF5不可用,它將被禁用。--enable-extended-sparse=yes此選項啟用MATLAB中不支持的擴展稀疏矩陣數據類型。 MATLAB僅支持雙精度稀疏數據。使用此標誌,Matio將使用其他類型(即單一精確和整數類型)讀取稀疏數據。--with-matlab=DIR此選項使用“ matlab”程序指定目錄(dir)。使用此選項,Testsuite將檢查Matio編寫的MAT文件是否可以讀取到MATLAB中。沒有此,測試只會檢查Matio可以讀取書面文件,如果成功,則將跳過測試。如果Matio無法讀取文件,則測試將失敗。--with-zlib=DIR此選項指定安裝Zlib的前綴(有關Zlib的信息,請參見第2.1.1節)。--with-hdf5=DIR此選項指定安裝HDF5軟件的前綴(有關HDF5的信息,請參見第2.1.2節)。--with-default-file-ver=version此選項設置默認的墊子文件版本(4,5,7.3),該版本將在編寫時使用。當MAT_FT_DEFAULT用於版本參數時,MAT_CREATE宏和Mat_Createver函數使用默認文件版本。--with-libdir-suffix=suffix此選項指定後綴安裝和查找依賴庫(即HDF5和ZLIB)時適用於庫目錄。例如,某些多ARCH Linux發行版將64位庫安裝到LIB64和32位庫中的LIB中。 Cmake Build System被支持作為替代構建系統,該系統通常由配置,構建和安裝的三個步驟組成。默認情況下,還配置了CMAKE項目用於使用CTEST進行測試。例如,
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 .提供以下MATIO特定於CMAKE構建的選項。
MATIO_USE_CONAN:BOOL=OFF此選項使Conan Package Manager可以解決庫依賴關係。僅支持柯南1.x。MATIO_DEFAULT_FILE_VERSION:STRING=5此選項設置默認的墊子文件版本(4,5,7.3),該版本將在編寫時使用。MATIO_EXTENDED_SPARSE:BOOL=ON啟用MATLAB中不支持的擴展稀疏矩陣數據類型。MATIO_MAT73:BOOL=ON可以支持版本7.3 MAT文件。MATIO_PIC:BOOL=ON啟用與位置無關的代碼(pic),即用-fPIC標誌彙編。對於Visual Studio構建而言,它被忽略了。MATIO_SHARED:BOOL=ON將Matio庫構建為共享對象(即Windows上的動態鏈接庫)。MATIO_WITH_HDF5:BOOL=ON此選項使CMAKE可以檢查HDF5庫的可用性(有關HDF5的信息,請參見第2.1.2節)。MATIO_WITH_ZLIB:BOOL=ON允許cmake檢查Zlib庫的可用性(有關ZLIB的信息,請參見第2.1.1節)。MATIO_BUILD_TESTING:BOOL=ON啟用ctest的Matio Testsuite。MATIO_ENABLE_CPPCHECK:BOOL=OFF此選項使CMake≥3.10可以使用CPPCHECK進行靜態分析。為了幫助CMAKE查找HDF5庫,將環境變量HDF5_DIR為cmake/hdf5目錄(包含hdf5-config.cmake )在HDF5構建或安裝目錄中,或與-DHDF5_DIR="dir/to/hdf5/cmake/hdf5" 。或者,用-DCMAKE_PREFIX_PATH="dir/to/hdf5/cmake"來調用cmake。有關更多信息,請參見HDF5說明。建議在使用CMAKE的內置FindHDF5上使用hdf5-config ,尤其是用於靜態構建。建議使用CMAKE 3.10或更高版本。
Visual Studio解決方案以VS2008的Matio_VS2008.SLN提供,為VS2010(和更新)提供了Matio.sln。設置了兩個解決方案的調試和發布配置,以構建Matio庫(libmatio.dll)的DLL,並假設HDF5在HDF5_DIR環境變量指定的目錄中可用。假定可以使用HDF5(和ZLIB)的共享庫。如果安裝/構建HDF5(和Zlib)的靜態庫,則需要定義宏H5_BUILT_AS_STATIC_LIB (而不是H5_BUILT_AS_DYNAMIC_LIB )。此外,設置了VS2010解決方案的LIB配置,以構建Matio庫(libmatio.lib)的靜態lib,並假設HDF5(和Zlib)的靜態庫是安裝/構建的。
使用GNU AutoTools構建時,可以使用測試套件。要運行Testsuite,請首先配置和構建Matio。建築運行後, make check以運行測試套件。如果沒有Zlib建造Matio,則將跳過壓縮變量測試。如果不使用HDF5構建,則將跳過7.3版MAT文件的測試。如果未指定MATLAB應用程序的路徑( --with-matlab ),則如果Matio無法讀取文件並跳過Matio如果可以讀取文件,則寫入測試將失敗。如果MATLAB可用,並且還可以讀取文件,則寫入測試將通過。
要報告Matio Testsuite失敗,請在構建目錄的測試子目錄中壓縮Testsuite.log文件。上傳壓縮日誌文件以及錯誤報告(有關報告錯誤的信息,請參見第1.4節)。
該庫已在Linux,Windows和OS X上進行了測試/使用,包括小型和大型建築。
該軟件是根據簡化的BSD許可提供的。有關許可證的詳細信息,請參見複製文件。
Matlab是Mathworks,Inc。的註冊商標。