我想將Matlab工作區中的一些數據打包成一個二進制文件,然後能夠在稍後的時間將這些數據恢復回工作區。 (該數據形成的遙測數據日誌的標題的一部分。這是非常有用的,該文件中直接產生的遙測數據。)如何將Matlab工作區數據打包到二進制文件中?
我知道,load
和save
命令將做的正是這一點,但我認爲我的病情是獨特的。一旦我將工作區數據保存到文件中,我有另一個程序(用C編寫)打開文件並將遙測數據附加到文件。我不認爲load
和save
將處理此問題。
我已經使用Mathworks File Exchange上的cstruct
工具將數據打包到blob中,並使用fwrite
將其寫入文件,從而部分解決了該問題。使用這種方法的警告是cstruct
在解包時必須知道打包格式。數據的格式已經發生變化,並且可能會再次發生變化,因此刪除此要求會很好。
理想情況下,我想寫一個字節數X到文件頭,然後是包含MAT格式數據的二進制BLOB(大小爲X),接着是可變大小的遙測數據塊。當我想解包數據時,我讀取X字節的數據,將其解釋爲MAT文件,並且它奇蹟般地出現在工作區中。
是否有包裝的工作空間變量爲二進制的blob,然後沒有他們的結構,的先驗知識,但二進制數據存儲爲一個較大的文件的一部分拆包他們的一種方式?
編輯:添加說明,我不認爲load
和save
是我所需要的。
感謝您的建議,shoelzer。我認爲從我原來的措辭來看並不清楚,但我希望將打包的數據嵌入到更大的二進制文件中。我不認爲「保存」和「加載」這樣做。我編輯了我的問題,使這個消息更加清晰。 – 2013-02-20 03:48:03
@RyanEdwards明白了。我更新了我的答案。 – shoelzer 2013-02-20 04:00:54
這正是我想到的解決方案,雖然我希望沒有臨時文件的解決方案。 – 2013-02-20 04:04:54