我想将Matlab工作区中的一些数据打包成二进制文件,然后能够在以后将这些数据恢复到工作区。 (数据构成了遥测数据日志标题的一部分。将直接生成遥测数据的数据直接存储在文件中非常有用。)
我知道load
和save
命令就是这样做的,但我认为我的情况是独一无二的。将工作空间数据保存到文件后,我有另一个程序(用C编写)打开文件并将遥测数据附加到文件中。我认为load
和save
不会处理这个问题。
我使用Mathworks文件交换中的cstruct
工具部分解决了问题,将数据打包到blob中并使用fwrite
将其写入文件。使用这种方法的警告是cstruct
在解包时必须知道打包格式。数据格式已经改变,可能会再次改变,因此最好删除此要求。
理想情况下,我想将一个字节数X写入文件头,后跟一个包含MAT格式数据的二进制blob(大小为X),然后是可变大小的遥测数据blob。当我想要解压缩数据时,我读取X字节的数据,将其解释为MAT文件,它神奇地出现在工作区中。
有没有办法将工作区变量打包到二进制blob,然后在不事先了解其结构的情况下解压缩它们,但二进制数据存储为更大文件的一部分?
修改:添加说明我认为load
和save
不是我需要的。