我想将 Matlab 工作区中的一些数据打包到一个二进制文件中,然后能够在以后将这些数据恢复到工作区中。(数据构成遥测数据日志标题的一部分。将生成遥测的数据直接包含在文件中很有用。)
我知道load
andsave
命令会做到这一点,但我认为我的情况是独一无二的。将工作区数据保存到文件后,我有另一个程序(用 C 编写)打开文件并将遥测数据附加到文件中。我不认为load
并且save
会处理这个。
我使用cstruct
Mathworks File Exchange 上的工具将数据打包到 blob 中并使用fwrite
. 这种方法需要cstruct
注意的是,在解包时必须注意打包格式。数据的格式已经改变并且很可能会再次改变,所以最好去掉这个要求。
理想情况下,我想将字节数 X 写入文件头,然后是包含 MAT 格式数据的二进制 blob(大小为 X),然后是可变大小的遥测数据 blob。当我想解压数据时,我读取 X 字节的数据,将其解释为 MAT 文件,然后它神奇地出现在工作区中。
有没有办法将工作区变量打包成二进制 blob,然后在不知道它们的结构的情况下将它们解包,但是二进制数据存储为更大文件的一部分?
编辑:添加了我不认为load
并且save
是我需要的说明。