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 )的HDF5进行配置,或使用已弃用的API版本1.10(IE --with-default-api-version=v110 )或已弃用的API版本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版本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。的注册商标。