缩短输出

Mathematica 中生成一个庞大的输出表达式时,往往并不希望一下子看到所有的表达式,而是希望先对表达式的一般结构有一个初步认识,然后才有可能深入到具体部分仔细查看.

函数 ShortShallow 可以使用户得到庞大的 Mathematica 表达式的缩略形式.

Short[expr]用一行显示 expr 的缩略形式
Short[expr,n]n 行显示 expr 的缩略形式
Shallow[expr]显示 expr 的顶层
Shallow[expr,{depth,length}]显示 expr 中指定深度和长度的部分

显示表达式的缩略形式.

这里生成了一个很长的表达式. 将整个表达式显示出来要占用23行.
In[1]:=
Click for copyable input
这里用一行给出了 的缩略形式,其中 表示被省略的项的个数.
In[2]:=
Click for copyable input
Out[2]//Short=

Mathematica 在生成如 OutputForm 的文本格式的输出时,首先将输出写为一个长行,然后根据要求的文本宽度,将该长行切分成一些行. 这些切分后的每一行当然可能会含有上标或嵌入分式,所以在输出设备上实际显示的可能多于一行. 当在 Short 中指定某一数目的行时,Mathematica 认为要选择的是逻辑行的数目,而不是在输出设备上实际显示的自然行的数目.

这是4行形式的 . 在这个例子中更多的项被显示出来.
In[3]:=
Click for copyable input
Out[3]//Short=

Short 在其它形式中也有效,比如在 StandardFormTraditionalForm 等形式中. 当使用这些形式时,自动换行由输出被显示时的笔记本界面决定,而不是由输出被创建时的内核决定. 因此,对由 Short 生成的行数的设定,只能近似于屏幕上实际显示的行数.

可以在 InputForm 等输出形式中使用 Short.
In[4]:=
Click for copyable input
Out[4]//Short=

Short 指令通过删除表达式中的一些项使得结果中的输出形式能放在所指定的行数内. 但有时最好不指定输出结果中有多少行,而是指定要丢掉表达式中的哪些项. Shallow[expr, {depth, length}] 仅包含任意函数的 length 个变量,丢掉指定深度之下的所有子表达式.

Shallow 显示 的一个不同缩略形式.
In[5]:=
Click for copyable input
Out[5]//Shallow=
这里仅包含每个函数的10个变量,而对深度没有限制.
In[6]:=
Click for copyable input
Out[6]//Shallow=

Shallow 在以统一的方式删除多层嵌套表达式中的项时特别有用,例如 Trace 返回值所产生的大列表结构.

这里给出了 Fibonacci 函数的递归定义.
In[7]:=
Click for copyable input
Out[7]=
这里生成了一个大列表结构.
In[8]:=
Click for copyable input
可以用 Shallow 来看这个结构的缩略形式.
In[9]:=
Click for copyable input
Out[9]//Shallow=
Short 给出了一个较难理解的不统一的缩略形式.
In[10]:=
Click for copyable input
Out[10]//Short=

当在笔记本界面中生成的输出过于庞大时,Mathematica 自动在输出时应用 Short. 这种用户界面的改善可以避免 Mathematica 使用过多的时间对用户可能并不想要的打印输出进行生成和格式化.

通常,一个类似于这个的指令将在最后有一个分号.
In[11]:=
Click for copyable input
Out[11]=

用户界面中的按钮允许用户对输出的多少进行控制. 使该行为生效的尺寸临界值由输出表达式的字节计数决定. 该字节计数可以在笔记本界面的 偏好设置 对话框中设置,这一对话框由按钮 设定大小限制 打开.

New to Mathematica? Find your learning path »
Have a question? Ask support »