gpt4 book ai didi

save - 如何在不保存辅助定义的情况下保存与 Mathematica 中符号关联的 [] 定义?

转载 作者:行者123 更新时间:2023-12-04 22:37:08 25 4
gpt4 key购买 nike

内置 Mathematica 命令 Save[file, symbol] 使用 FullDefinition[] 查找定义 symbol 和所有辅助定义。

例如,命令

a:=b
c:=2a+b
Save[ToFileName[NotebookDirectory[],"test.dat"],c]

生成文件 test.dat 包含
c := 2*a + b
a := b

我有一个程序有很多漂亮的 MakeBoxes 类型定义,当我保存 [] 许多单独的结果时,我希望保存 而不是

就上面的简单示例而言,我不希望将 a := b 定义保存到文件中。有谁知道一种巧妙的方法来实现这一目标?

最佳答案

根据文档, Save 使用 FullDefinition 而你想要的是它使用 Definition 。使用 Block 我们可以覆盖任何符号的全局定义,特别是在运行 FullDefinition 时用 Definition 替换 Save :

Block[{FullDefinition},
FullDefinition = Definition;
Save[filename, c]
];
FilePrint[filename]
DeleteFile[filename]

魔术作品:
c := 2*a + b

编辑。用正确的属性总结一下:
SetAttributes[truncatedSave, HoldRest]
truncatedSave[filename_, args__] := Block[{FullDefinition},
FullDefinition = Definition;
Save[filename, args]];

关于save - 如何在不保存辅助定义的情况下保存与 Mathematica 中符号关联的 [] 定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4094160/

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