Sza*_*lcs 11 serialization wolfram-mathematica
在Mathematica中,可以使用Save(.m文件)或DumpSave(.mx文件)保存中间结果/工作区的部分状态.
.m文件是可移植的,但加载速度很慢(使用大数据).
.mx文件加载速度很快,但在平台/体系结构之间无法移植.
有没有办法以加载它们的方式保存通用Mathematica表达式,并且它们可以在平台之间移植?有没有人尝试/基准测试不同的方法来做到这一点?
一种可能的解决方案是保存.m文件(跨平台),然后在新平台上开始工作时将它们转换为.mx文件(一次性操作).有没有一种全自动的方式将.m文件转换为.mx文件?
从阿列克谢链接的帖子中:
str=OpenWrite[file,BinaryFormat->True];
BinaryWrite[str,Compress[expr],"TerminatedString"];
Close[str];
Run Code Online (Sandbox Code Playgroud)
这不像使用 mx 文件那么快,但它仍然非常快。
大卫·贝利
另一种选择似乎是WDX(Wolfram Data eXchange),我在各种机器上使用它都没有问题,而且它似乎也是可移植的,可以像 MX 文件一样使用,是二进制的,有文档记录,因此我认为官方支持. 并且它被数据包功能使用,所以我想它在所有系统上都具有相当的性能和良好的测试(到目前为止我的经验确实支持这个假设)。
(摘自 Albert Retey 的回答,也来自 Alexey 的链接)
但是这些不像Save/DumpSave那样工作,因为它不保存FullDefinitionof expr,只保存的显式值expr。
| 归档时间: |
|
| 查看次数: |
870 次 |
| 最近记录: |