如何在 Mathematica 中保存与符号关联的 [] 定义而不保存辅助定义?
内置 Mathematica 命令 保存[文件,符号]
使用 FullDefinition[]
查找定义 symbol
和所有辅助定义。
例如,这些命令
a:=b
c:=2a+b
Save[ToFileName[NotebookDirectory[],"test.dat"],c]
生成文件 test.dat ,其中包含
c := 2*a + b
a := b
我有一个带有大量美化内容的程序 当我保存[]许多单独的结果时,我不希望保存MakeBoxes
类型定义。
就上面的简单示例而言,我不希望将 a := b
定义保存到文件中。有谁知道一个巧妙的方法来实现这一点?
The built-in Mathematica command Save[file, symbol]
uses FullDefinition[]
to look up the definition symbol
and all of the subsidiary definitions.
For example, the commands
a:=b
c:=2a+b
Save[ToFileName[NotebookDirectory[],"test.dat"],c]
produces the file test.dat containing
c := 2*a + b
a := b
I have a program with a lot of prettifying MakeBoxes
type definitions that I do not want to be saved when I Save[] the many separate results.
In terms of the simple example above, I do not want the a := b
definition saved to the file. Does anyone know a neat way to make this happen?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
根据文档,
Save
使用FullDefinition
,而您想要的是它使用Definition
。使用Block
我们可以覆盖任何符号的全局定义,特别是在运行Save
FullDefinition 替换为Definition
>:神奇的作品:
编辑。用正确的属性来概括事物:
According to the documentation,
Save
usesFullDefinition
while what you want is for it to useDefinition
. Using aBlock
we can override the global definition of any symbol, and in particular replaceFullDefinition
withDefinition
while runningSave
:The magic works:
EDIT. Wrapping things up with the right attributes:
我想
是这样吗。
示例代码:
输出
I think
Does that.
Sample code:
Out
警告-警告-我不知道我在做什么
刚刚随机浏览帮助系统发现了这个。
以前从未使用过 RunThrough ...无论如何似乎都可以做你想做的事。
输出
编辑.. 适用于带有一点 Hold-Fu 的列表
Warning - Warning - I don't know what I am doing
Just found this browsing the help system randomly.
Never before used RunThrough ... anyway seems to do what you want.
Out
Edit.. Works on lists with a little Hold-Fu