Mathematica 9 is now available

2.11.1 读写 Mathematica 文件

当使用基于文本的 Mathematica 界面时,就需要经常读写含有定义和结果的文件. 1.11.1 节对此已进行了一般地讨论,这一节给出细节.

读文件

显示文件 factors 的内容

读入一个文件,返回值是文件的最后一个表达式

Mathematica 找不到所要文件时,它显示一个信息,返回值为 $Failed

Mathematica 的输入文件可以包含任意数目的表达式. 每个表达式必须从新的一行开始,它 可以占有许多行. 在交互式的 Mathematica 对话中,当表达式完成后 就进行处理. 但是在一个文件中,可以在任何位置插入一个空行, 这不产生任何影响.
<<file 读入文件时,Mathematica 返回值为文件中的最后一个表达式, 为了不让此结果显示,可以在文件的最后一个表达式中用分号,或者直接 在最后加 Null.
Mathematica 读入文件时发现语法错误,它就报告此错误,忽略文件余下的部分, 返回值为 $Failed. 但如果语法错误发生在使用 BeginPackage 和其它上下文操作函数 的程序包中,Mathematica 就尽量恢复读入程序包以前的状态.

向文件中写表达式

将一个表达式写入文件

tmp 这是该文件的内容

在同一文件中加了另一

表达式此时文件中有两个表达式

expr >>> file 时,Mathematica 把新表达式加在文件之后,而用 expr >> file 时,Mathematica 清除文件中所有内容,然后把 expr 写入文件.
当用 >>>>> 向文件写入表达式时,这些表达式一般是用输入形式,以便再将他们读入 Mathematica. 有时需要用别的形式保存表达式,这可以通过将这些表达式包含在 OutputForm 等格式指令中来实现.

这是按输出形式将一个表达式写入文件 tmp

此时 tmp 文件中的表达式是输出形式

使用文件的最常用目的是保存 Mathematica 对象的定义,以便在随后的 Mathematica 对话中再读入它们. 算符 >>>>> 将表达式保存在文件中. 也可以用函数 Save 按适当的形式去保存 Mathematica 对象的完整定义以便在随后 的 Mathematica 对话中执行.

写出定义

给符号 a 指定一个值

Save 将a的定义写入文件

这是在文件中保存的定义

Mathematica 中定义一个对象时,该定义常常依赖于前面定义的其它对象. 如果要在后面的 Mathematica 对话中重新构造这个对象的定义,这就需要保存该定义 本身和与它有关的其它对象的定义. 函数 Save 检查要保存的定义,自动地保存 与它们有关的定义. 但为了不存入太多不必要的内容,Save 不包含属性为 Protected 的符号的定义.它认为这些符号的定义是内部给出的. 为了照顾 这些定义,在一个新的 Mathematica 对话中读入从 Save 产生的输出时, 必须保证对象的定义与以前的完全一致.

这里定义了与以前给出的符号有关的函数 f

这里将 f 的完整定义存入一个文件

该文件不仅包含了f本身的定义,也有f所依赖符号a 的定义

函数 Save 利用输出形式 DefinitionFullDefinition,它们显示 Mathematica 符号的定义. 有时直接用这些输出形式是很方便的.

输出形式 Definition[f]f 的定义序列

FullDefinition[f] 包含 f 所依赖对象的定义

建立 Mathematica 输入文件时,通常文件仅包含可直接阅读和修改的文本, 有时还需要对文件编码,使得它们不能直接阅读和修改,但还要求此文件 能调入 Mathematica 内.这可以用 Mathematica 函数 Encode 实现.

产生和读入代码文件

将表达式按简明文本形式写入文件 tmp

将文件 tmp 的代码形式写入文件 tmp.x

这里是代码文件的内容,能识别的部分仅是在开头的 Mathematica 注解

即使代码文件,也可以用 << 读入 Mathematica

按 Mathematica 内部格式保存定义

在必须读入很大或很复杂的定义时,按 Mathematica 内部格式保存比 按文本保存方便. 这可以用 DumpSave 实现.

Mathematica 内部格式保存f的定义

仍可用 << 去读入这个定义

当一个文件含有 Mathematica 内部定义时,<< 能识别它并进行相应的操作. Mathematica 内部格式在不同的计算机系统有细微的差异. 于是在一个计算机上 产生的 .mx 一般不能在别的计算机上读入.
DumpSave["package`", ... ] 时,Mathematica 就将定义写到名为 package.mx/system/package.mx 等文件中,其中 system 指明所使用的 计算机系统.

这里产生的文件名反映了所使用的计算机系统

<< 自动选择名称与所用计算机系统相关的文件

保存Mathematica的完整状态



Any questions about topics on this page? Click here to get an individual response.Buy NowMore Information
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.