gpt4 book ai didi

matlab - 如何将 Matlab 工作区数据打包/解包到二进制文件中?

转载 作者:太空宇宙 更新时间:2023-11-03 20:30:43 25 4
gpt4 key购买 nike

我想将一些数据从 Matlab 工作区打包到一个二进制文件中,然后能够在稍后的某个时间将该数据恢复回工作区。 (数据构成遥测数据日志 header 的一部分。将生成遥测的数据直接包含在文件中非常有用。)

我知道 loadsave 命令将执行此操作,但我认为我的条件是独一无二的。将工作区数据保存到文件后,我有另一个程序(用 C 编写)打开文件并将遥测数据附加到文件。我认为 loadsave 不会处理这个问题。

我已经使用 cstruct 部分解决了这个问题在 Mathworks File Exchange 上找到的工具,用于将数据打包到 blob 中并使用 fwrite 将其写入文件。这种方法的警告是 cstruct 在解包时必须知道打包格式。数据格式已更改并且可能会再次更改,因此最好删除此要求。

理想情况下,我想将字节数 X 写入文件头,然后是包含 MAT 格式数据的二进制 blob(大小为 X),然后是可变大小的遥测数据 blob。当我想解压缩数据时,我读取了 X 字节的数据,将其解释为 MAT 文件,它神奇地出现在工作区中。

有没有一种方法可以将工作区变量打包成二进制 blob,然后在事先不知道它们的结构的情况下将它们解包,但是二进制数据存储为更大文件的一部分

编辑:添加了说明,我认为 loadsave 不是我需要的。

最佳答案

Matlab 的 save命令正是你想要的。要再次加载变量,请使用 load .

更新:现在我明白您要做什么了。我最好的想法是使用 save 创建一个 .mat 文件,然后将该文件嵌入到您的自定义二进制文件中(只需复制字节)。要恢复 Matlab 数据,请提取这些字节以创建新的 .mat 文件,然后使用 load。这种方法很好,因为您只需要进行最少的二进制格式化,而且它可以处理任何 Matlab 数据。

额外提示:临时 .mat 文件的一个好地方是 tempdir .

关于matlab - 如何将 Matlab 工作区数据打包/解包到二进制文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14970943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com