使用Mathematica 7和8,我们发现Mathematica无法正确保存并获得适合例程的结果。我希望有人知道:这个bug的最佳实践解决方法是什么?
我们的任务是使用NonlinearModelFit拟合大量数据集,它为每个数据集返回一个FittedModel。这些配合需要一段时间,我们尝试使用Save和DumpSave将结果记忆到文件中。随后的分析使用Get将FittedModel拉回来。
Mathematica在没有警告的情况下执行Save&Get,但返回的FittedModel是错误的。我们调用Get并从磁盘加载一个FittedModel,调用结果“foo”。尝试foo [10]用输入10来评估拟合模型。我们看到的错误是foo [“BestFitParameters”]应该返回一个列表规则,而是将字符串插入到函数中,因为它是一个像10的数字。试着foo [{“BestFitParameters”,“BestFitParameters”}]应该在列表中给出两次规则,但是对于有缺陷的foo仍然没有评估。
根据我们是删除/清除foo还是退出内核,在此基础上存在一种奇怪且误导性的行为:
- 将FittedModel计算为foo
- 保存或DumpSave foo到磁盘
- 删除和/或清除foo
- 从磁盘获取foo
- foo工作正常
但是如果我们重启内核就会失败
- 将FittedModel计算为foo
- 保存或DumpSave foo到磁盘
- 杀死并重新启动内核
- 从磁盘获取foo
- foo是越野车
以前有没有人见过这种行为?
这个bug背后有一个很好的解释吗?
有一个很好的解决方法吗?