مكتبة Matlab Mat File I/O
Matio هي مكتبة C مفتوحة المصدر لقراءة وكتابة ملفات Matlab Mat الثنائية. تم تصميم هذه المكتبة للاستخدام من قبل البرامج/المكتبات التي لا تملك الوصول أو لا ترغب في الاعتماد على مكتبات MATLAB المشتركة.
يمكنك الاتصال بالمؤشر من خلال البريد الإلكتروني على [email protected].
لقد ساعد الأشخاص/المنظمات التالية في تطوير Matio من خلال البقع وتقارير الأخطاء و/أو الاختبار:
إذا كنت مهتمًا بالتعاون ، فاتصل بالمشرف عبر البريد الإلكتروني (انظر القسم 1.1).
يمكن طرح الأسئلة باستخدام المنتديات على موقع SourceForge الذي يستضيف Matio.
يجب تقديم الأخطاء والتحسينات وما إلى ذلك باستخدام أحد المتتبعين على صفحة SourceForge.
يصف هذا القسم كيفية بناء ماتيو. يصف القسم 2.1 التبعيات ، القسم 2.2 كيفية إنشاء/اختبار Matio ، والقسم 2.3 يوثق المنصات التي تم اختبارها على Matio.
ماتيو لديه اثنين من التبعيات الاختيارية. هذه ليست مطلوبة للبرنامج للعمل ، ولكن بدونها قد تكون بعض الملفات غير قابلة للقراءة. مطلوب Zlib لقراءة/كتابة ملفات MAT المستوى 5 التي تستخدم الضغط. مطلوب HDF5 للعمل مع ملفات MAT الأحدث التي تستخدم ملفات HDF5-Format.
لدعم ملفات MAT المضغوطة ، يلزم إصدار ZLIB ≥ 1.2.3. يمكن تنزيل برنامج ZLIB من http://zlib.net/.
يتطلب دعم File File الإصدار 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 ) أو مع الإصدار 1.8 من أهمها ( --with-default-api-version=v18 ).--with-default-api-version=v112 ) ، أو مع إصدار API المهمل 1.10 (أي --with-default-api-version=v110 ) أو مع إصدار API 1.8 (ie --with-default-api-version=v18 ).--with-default-api-version=v112 --with-default-api-version=v114 ) ، أو مع إصدار API API المنخفض 1.12 (IE-مع --with-default-api-version=v110 API) (أي --with-default-api-version=v18 ). بالنسبة لنظام التشغيل Windows ، يمكن استخدام الثنائيات المسبقة مسبقًا والتي تتضمن أيضًا DLL من Zlib لتلبية تبعية ZLIB. بالنسبة إلى Ubuntu ، يجب أن يعمل sudo apt install libhdf5-dev بشكل جيد.
الطريقة الأساسية لبناء البرنامج مع GNU Autotools باستخدام configure متبوعًا بـ make . بعد البناء ، يمكن تنفيذ TestSuite لاختبار البرنامج باستخدام 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إذا فشل أي من الاختبارات في TestSuite ، فيجب عليك الإبلاغ عن الفشل باستخدام Tracker (انظر القسم 1.4). يجب إرفاق ملف testSuite.log الذي تم إنشاؤه بتقرير الأخطاء.
يأخذ البرنامج النصي التكوين المستخدم لإنشاء البرنامج عددًا من الخيارات. يصف هذا القسم الخيارات الرئيسية.
--enable-mat73=yes تتيح هذه العلامة دعم ملفات الإصدار 7.3 MAT. الخيار لا معنى له إلا إذا تم تصميمه باستخدام 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 MACRO ودالة MAT_CREATEVER عند استخدام MAT_FT_DEFAULT في وسيطة الإصدار.--with-libdir-suffix=suffix يحدد هذا الخيار لاحقة لتطبيقها على أدلة المكتبة عند تثبيت مكتبات تابعة والبحث عنها (أي HDF5 و ZLIB). على سبيل المثال ، تقوم بعض توزيعات Linux متعددة القوس بتثبيت مكتبات 64 بت في مكتبات LIB64 و 32 بت في LIB. يتم دعم نظام إنشاء CMAKE كنظام بناء بديل ، والذي يتكون عادة من ثلاث خطوات للتكوين والبناء والتثبيت. بشكل افتراضي ، يتم أيضًا تكوين مشروع 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 1.x مدعوم.MATIO_DEFAULT_FILE_VERSION:STRING=5 يعين هذا الخيار إصدار ملف MAT الافتراضي (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 (انظر القسم 2.1.2 للحصول على معلومات حول HDF5).MATIO_WITH_ZLIB:BOOL=ON هذا الخيار ، يتيح CMAKE التحقق من توفر مكتبة ZLIB (انظر القسم 2.1.1 للحصول على معلومات حول ZLIB).MATIO_BUILD_TESTING:BOOL=ON هذا الخيار يتيح اختبار MATIO ل CTEST.MATIO_ENABLE_CPPCHECK:BOOL=OFF هذا الخيار يتيح CMAKE ≥ 3.10 لإجراء تحليل ثابت مع CPPCHECK. للمساعدة في العثور على مكتبات HDF5 ، قم بتعيين متغير البيئة HDF5_DIR إلى دليل cmake/hdf5 (يحتوي على hdf5-config.cmake ) داخل دليل البناء أو التثبيت HDF5 ، أو استدعاء 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 و 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) قد تم تصميمها/تم إنشاؤها.
يتوفر TestSuite عند البناء مع GNU Autotools. لتشغيل TestSuite ، قم أولاً بتكوين وبناء Matio. بعد بناء تشغيل make check لتشغيل testsuite. إذا تم بناء Matio بدون ZLIB ، فسيتم تخطي اختبارات المتغيرات المضغوطة. إذا تم تصميمه بدون HDF5 ، فسيتم تخطي اختبارات ملفات الإصدار 7.3 MAT. إذا لم يتم تحديد المسار إلى تطبيق MATLAB ( --with-matlab ) ، فستفشل اختبارات الكتابة إذا لم يتمكن Matio من قراءة الملف وتخطي ما إذا كان Matio قادرًا على قراءة الملف. سيتم تمرير اختبارات الكتابة إذا كان Matlab متاحًا ويمكنه أيضًا قراءة الملف.
للإبلاغ عن فشل Matio Testsuite ، ضغط ملف testsuite.log في دليل الاختبار الفرعي لدليل الإنشاء. قم بتحميل ملف السجل المضغوط جنبًا إلى جنب مع تقرير الأخطاء (انظر القسم 1.4 للحصول على معلومات حول الإبلاغ عن الأخطاء).
تم اختبار/استخدام المكتبة على Linux و Windows و OS X بما في ذلك كل من الهندسة المعمارية ذات الصغار والكبار.
يتم توفير هذا البرنامج بموجب ترخيص BSD مبسط. راجع ملف النسخ للحصول على تفاصيل على الترخيص.
Matlab هي علامة تجارية مسجلة لشركة Mathworks ، Inc.