اكتب ملف حصيرة دون استخدام رؤوس ومكتبات MATLAB
سؤال
لدي بعض البيانات التي أود حفظها في ملف حصيرة (الإصدار 4 أو 5 ، أو أي إصدار ، لهذه المسألة). الصيد: أردت القيام بذلك دون استخدام مكتبات MATLAB ، لأن هذا الرمز لن يتم تشغيله في جهاز مع MATLAB. يستخدم برنامجي Java و C ++ ، لذلك أي مكتبة موجودة بتلك اللغات التي تحقق ذلك يمكن أن تساعدني ...
قمت ببعض الأبحاث لكنني لم أجد أي شيء في Java/C ++. ومع ذلك ، وجدت أن Scipy on Python يحقق هذا مع mio4.py
أو mio5.py
. فكرت في تنفيذ هذا على Java أو C ++ ، لكن يبدو أنه خارج جدول زمني قليلاً.
لذا فإن السؤال هو: هل هناك أي مكتبات في Java أو C/C ++ تسمح بحفظ ملفات MAT دون استخدام مكتبات MATLAB؟
شكرًا جزيلاً
المحلول
ج: ماتيو
جافا: JMatio
(أنا أميل حقًا إلى ذلك ، لذلك سأخبرك أن تتعلم Google)
ولكن في الحقيقة ، ليس من الصعب كتابة Matfiles باستخدام fwrite
إذا لم تكن بحاجة إلى التعامل مع بعض الأشياء الأكثر تعقيدًا (الهياكل المتداخلة ، والفئات ، والوظائف ، والمصفوفة المتفرقة ، إلخ).
نرى: http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/matfile_format.pdf
نصائح أخرى
ملفات MAT منذ الإصدار 7 تعتمد على HDF5. أتذكر أنهم يستخدمون بعض الاتفاقيات المضحكة إلى حد ما ، لكنك قد تكون قادرًا على عكس هندسة ما تحتاجه. هناك بالتأكيد مكتبات كتابة HDF5 لكل من Java و C ++.
على طول هذه الخطوط ، يمكن لـ Matlab قراءة/كتابة العديد من التنسيقات القياسية ، بما في ذلك HDF5. قد يكون من الأسهل كتابة بياناتك في HDF5 "القياسية" وقراءتها في بنية البيانات المطلوبة داخل MATLAB.