ไลบรารี MATLAB MAT I/O
Matio เป็นไลบรารี C โอเพนซอร์ซสำหรับการอ่านและเขียนไฟล์ Matlab Mat ไบนารี ห้องสมุดนี้ได้รับการออกแบบมาเพื่อใช้งานโดยโปรแกรม/ไลบรารีที่ไม่มีการเข้าถึงหรือไม่ต้องการพึ่งพาห้องสมุดที่ใช้ร่วมกันของ Matlab
คุณสามารถติดต่อผู้ดูแลผ่านอีเมลได้ที่ [email protected]
ผู้คน/องค์กรต่อไปนี้ได้ช่วยในการพัฒนา Matio ผ่านแพตช์รายงานข้อผิดพลาดและ/หรือการทดสอบ:
หากคุณมีความสนใจในการทำงานร่วมกันติดต่อผู้ดูแลผ่านอีเมล (ดูหัวข้อ 1.1)
คำถามสามารถถามได้โดยใช้ฟอรัมในเว็บไซต์ SourceForge Hosting Matio
ข้อบกพร่องการปรับปรุง ฯลฯ ควรส่งโดยใช้หนึ่งในตัวติดตามในหน้า SourceForge
ส่วนนี้อธิบายวิธีการสร้าง Matio ส่วนที่ 2.1 อธิบายการพึ่งพาส่วนที่ 2.2 วิธีการสร้าง/ทดสอบ matio และส่วนที่ 2.3 เอกสารแพลตฟอร์ม matio ได้รับการทดสอบ
Matio มีการพึ่งพาสองทางเลือก สิ่งเหล่านี้ไม่จำเป็นสำหรับซอฟต์แวร์ในการทำงาน แต่หากไม่มีไฟล์บางไฟล์อาจไม่สามารถอ่านได้ zlib จำเป็นต้องอ่าน/เขียนไฟล์ MAT ระดับ 5 ที่ใช้การบีบอัด ต้องใช้ HDF5 เพื่อทำงานกับไฟล์ MAT รุ่นใหม่ที่ใช้ไฟล์ HDF5-Format
เพื่อรองรับไฟล์ MAT ที่ถูกบีบอัดจำเป็นต้องใช้ ZLIB เวอร์ชัน≥ 1.2.3 ซอฟต์แวร์ ZLIB สามารถดาวน์โหลดได้จาก http://zlib.net/
รองรับไฟล์ MAT เวอร์ชัน 7.3 ต้องใช้ไลบรารี HDF5 ห้องสมุดนี้สามารถดาวน์โหลดได้จาก https://www.hdfgroup.org/ Matio ต้องการรุ่น HDF5 ≥ 1.8.x ทั้งฟังก์ชั่น HDF5 1.6.x API ที่เลิกใช้แล้วหรือฟังก์ชั่นระดับสูงกว่า HDF5 เรียกว่า
--with-default-api-version=v18 )--with-default-api-version=v110 --with-default-api-version=v18 หรือกับ API รุ่น 1.8 ที่เลิกใช้แล้ว--with-default-api-version=v112 --with-default-api-version=v110 ) หรือกับ --with-default-api-version=v18 รุ่น 1.10 ที่ไร้ค่า--with-default-api-version=v114 --with-default-api-version=v112 --with-default-api-version=v110 หรือกับ API รุ่นที่เสื่อมราคา 1.12 เวอร์ชัน 1.8 (เช่น --with-default-api-version=v18 ) สำหรับ Windows สามารถนำไบนารีไว้ล่วงหน้าได้ซึ่งรวมถึง DLL ของ ZLIB เพื่อตอบสนองการพึ่งพา Zlib สำหรับ Ubuntu sudo apt install libhdf5-dev ควรทำงานได้ดี
วิธีหลักในการสร้างซอฟต์แวร์คือ GNU 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 ธงนี้ช่วยให้สามารถรองรับไฟล์ MAT เวอร์ชัน 7.3 ตัวเลือกนั้นเหมาะสมถ้าสร้างด้วย HDF5 เพื่อรองรับไฟล์เวอร์ชัน 7.3 มันจะถูกปิดใช้งานหาก HDF5 ไม่พร้อมใช้งาน--enable-extended-sparse=yes ตัวเลือกนี้เปิดใช้งานประเภทข้อมูลเมทริกซ์เบาบางขยายที่ไม่รองรับใน MATLAB MATLAB รองรับข้อมูลเบาบางที่มีความแม่นยำสองเท่าเท่านั้น ด้วยการตั้งค่าสถานะนี้ Matio จะอ่านข้อมูลที่กระจัดกระจายกับประเภทอื่น ๆ (เช่นประเภทความแม่นยำเดียวและจำนวนเต็ม)--with-matlab=DIR ตัวเลือกนี้ระบุไดเรกทอรี (DIR) ด้วยโปรแกรม 'MATLAB' ด้วยตัวเลือกนี้ TestSuite จะตรวจสอบว่าไฟล์ MAT ที่เขียนโดย Matio สามารถอ่านได้ใน MATLAB หากไม่มีสิ่งนี้การทดสอบจะตรวจสอบว่า Matio สามารถอ่านไฟล์ที่เขียนและหากประสบความสำเร็จการทดสอบจะถูกข้าม หาก Matio ไม่สามารถอ่านไฟล์การทดสอบจะล้มเหลว--with-zlib=DIR ตัวเลือกนี้ระบุคำนำหน้าที่ติดตั้ง zlib (ดูหัวข้อ 2.1.1 สำหรับข้อมูลเกี่ยวกับ zlib)--with-hdf5=DIR ตัวเลือกนี้ระบุคำนำหน้าซึ่งติดตั้งซอฟต์แวร์ HDF5 (ดูหัวข้อ 2.1.2 สำหรับข้อมูลเกี่ยวกับ HDF5)--with-default-file-ver=version ตัวเลือกนี้ตั้งค่าเวอร์ชันไฟล์ MAT เริ่มต้น (4,5,7.3) ที่จะใช้เมื่อเขียน รุ่นไฟล์เริ่มต้นถูกใช้โดยแมโคร mat_create และฟังก์ชัน MAT_Createver เมื่อใช้ MAT_FT_DEFAULT สำหรับอาร์กิวเมนต์เวอร์ชัน--with-libdir-suffix=suffix ตัวเลือกนี้ระบุคำต่อท้ายเพื่อใช้กับไดเรกทอรีห้องสมุดเมื่อติดตั้งและมองหาไลบรารีที่ขึ้นอยู่กับ (เช่น HDF5 และ ZLIB) ตัวอย่างเช่นการแจกแจง Linux แบบหลายโค้งบางส่วนติดตั้งไลบรารี 64 บิตลงในไลบรารี LIB64 และ 32 บิตลงใน LIB ระบบ CMAKE Build ได้รับการสนับสนุนเป็นระบบสร้างทางเลือกซึ่งมักจะประกอบด้วยสามขั้นตอนสำหรับการกำหนดค่าการสร้างและการติดตั้ง โดยค่าเริ่มต้นโครงการ 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 สามารถแก้ไขการพึ่งพาไลบรารีได้ รองรับ Conan 1.x เท่านั้นMATIO_DEFAULT_FILE_VERSION:STRING=5 ตัวเลือกนี้ตั้งค่าเวอร์ชันไฟล์ MAT เริ่มต้น (4,5,7.3) ที่จะใช้เมื่อเขียนMATIO_EXTENDED_SPARSE:BOOL=ON ตัวเลือกนี้ช่วยให้ชนิดข้อมูลเมทริกซ์เบาบางขยายไม่รองรับใน MATLABMATIO_MAT73:BOOL=ON แฟล็กนี้ช่วยให้สามารถรองรับไฟล์ MAT รุ่น 7.3MATIO_PIC:BOOL=ON ตัวเลือกนี้เปิดใช้งานรหัสที่ไม่ขึ้นกับตำแหน่ง (PIC), IE, การรวบรวมด้วยธง -fPIC มันถูกละเว้นสำหรับการสร้าง Visual StudioMATIO_SHARED:BOOL=ON ตัวเลือกนี้สร้างไลบรารี matio เป็นวัตถุที่ใช้ร่วมกัน (เช่นไลบรารีลิงก์แบบไดนามิกบน Windows)MATIO_WITH_HDF5:BOOL=ON ตัวเลือกนี้ช่วยให้ CMake ตรวจสอบความพร้อมใช้งานของไลบรารี HDF5 (ดูหัวข้อ 2.1.2 สำหรับข้อมูลเกี่ยวกับ HDF5)MATIO_WITH_ZLIB:BOOL=ON ตัวเลือกนี้ช่วยให้ cmake ตรวจสอบความพร้อมใช้งานของไลบรารี zlib (ดูหัวข้อ 2.1.1 สำหรับข้อมูลเกี่ยวกับ zlib)MATIO_BUILD_TESTING:BOOL=ON ตัวเลือกนี้ช่วยให้ matio testsuite สำหรับ ctestMATIO_ENABLE_CPPCHECK:BOOL=OFF ตัวเลือกนี้เปิดใช้งาน cmake ≥ 3.10 เพื่อทำการวิเคราะห์แบบคงที่ด้วย cppcheck เพื่อช่วยให้ CMake ค้นหาไลบรารี HDF5 ให้ตั้งค่าตัวแปรสภาพแวดล้อม HDF5_DIR ไปยังไดเรกทอรี cmake/hdf5 (มี hdf5-config.cmake ) ภายใน HDF5 Build หรือ Directory หรือการติดตั้ง CMAKE ด้วย -DHDF5_DIR="dir/to/hdf5/cmake/hdf5" เรียกใช้ cmake ด้วย -DCMAKE_PREFIX_PATH="dir/to/hdf5/cmake" ดูคำแนะนำ HDF5 สำหรับข้อมูลเพิ่มเติม แนะนำให้ใช้ hdf5-config มากกว่าการใช้ FindHDF5 ในตัวของ CMake โดยเฉพาะอย่างยิ่งสำหรับการสร้างแบบคงที่ แนะนำให้ใช้ CMake 3.10 หรือใหม่กว่า
โซลูชัน Visual Studio มีให้เป็น Matio_VS2008.SLN สำหรับ VS2008 และ AS Matio.SLN สำหรับ VS2010 (และใหม่กว่า) การตั้งค่าการดีบักและการเปิดตัวของโซลูชันทั้งสองได้รับการตั้งค่าเพื่อสร้าง DLL ของไลบรารี Matio (libmatio.dll) และเครื่องมือ Matdump และสมมติว่า HDF5 มีอยู่ในไดเรกทอรีที่ระบุโดยตัวแปรสภาพแวดล้อม HDF5_DIR สันนิษฐานว่ามีห้องสมุด ที่ใช้ร่วมกัน ของ HDF5 (และ ZLIB) หากมีการติดตั้งห้องสมุด แบบคงที่ ของ HDF5 (และ ZLIB)/สร้างมาโคร H5_BUILT_AS_STATIC_LIB จำเป็นต้องกำหนด (แทนที่จะเป็น H5_BUILT_AS_DYNAMIC_LIB ) นอกจากนี้การกำหนดค่า LIB ที่ปล่อยออกมาของโซลูชัน VS2010 ได้รับการตั้งค่าเพื่อสร้าง lib แบบคงที่ของไลบรารี Matio (libmatio.lib) และสมมติว่ามีการติดตั้ง/สร้างไลบรารี แบบคงที่ ของ HDF5 (และ zlib)
มีการทดสอบเมื่อสร้างด้วย GNU Autotools ในการเรียกใช้ TestSuite ให้กำหนดค่าและสร้าง matio ก่อน หลังจากสร้างรัน make check เพื่อเรียกใช้การทดสอบ หาก Matio ถูกสร้างขึ้นโดยไม่มี zlib การทดสอบตัวแปรบีบอัดจะถูกข้าม หากสร้างโดยไม่มี HDF5 การทดสอบไฟล์ MAT รุ่น 7.3 จะถูกข้าม หากไม่ได้ระบุเส้นทางไปยังแอปพลิเคชัน MATLAB ( --with-matlab ) การทดสอบการเขียนจะล้มเหลวหาก Matio ไม่สามารถอ่านไฟล์และข้ามได้หาก Matio สามารถอ่านไฟล์ได้ การทดสอบการเขียนจะผ่านหากมี MATLAB และยังสามารถอ่านไฟล์ได้
ในการรายงานความล้มเหลวของ Matio Testsuite ให้บีบอัดไฟล์ testsuite.log ในไดเรกทอรีย่อยทดสอบของไดเรกทอรี Build อัปโหลดไฟล์บันทึกที่บีบอัดพร้อมกับรายงานข้อผิดพลาด (ดูหัวข้อ 1.4 สำหรับข้อมูลเกี่ยวกับข้อบกพร่องในการรายงาน)
ห้องสมุดได้รับการทดสอบ/ใช้กับ Linux, Windows และ OS X รวมถึงสถาปัตยกรรมทั้งน้อยและเอ็นเอดิน
ซอฟต์แวร์นี้มีให้ภายใต้ใบอนุญาต BSD ที่เรียบง่าย ดูไฟล์คัดลอกสำหรับรายละเอียดเกี่ยวกับใบอนุญาต
MATLAB เป็นเครื่องหมายการค้าจดทะเบียนของ MathWorks, Inc.