在Mathematica中有清洁屏幕的命令或例程吗?

时间:2014-07-20 05:56:27

标签: wolfram-mathematica

我正在寻找一些命令或一些允许清洁工作区域(屏幕)的例程,以便将结果显示在干净的屏幕上。命令不是清除变量之类的东西,而是屏幕。

在其他语言中,例如Qbasic cls

3 个答案:

答案 0 :(得分:2)

此功能可以清除当前笔记本: -

cls := Module[{nb},
  nb = EvaluationNotebook[];
  SelectionMove[nb, All, Notebook];
  NotebookDelete@nb]

评估后,可能在初始化文件中,只需键入cls即可运行。

修改

除了零评论,这将在一个新的窗口中显示结果。

Clear["Global`*"]
a = Input["ingrese a , a distinto de cero"];
b = Input["ingrese b "];
c = Input["ingrese c "];
CreateDocument[
  ExpressionCell[
   Row[{"La funcion es : y = ", TraditionalForm[a*"x"^"2" + b*"x" + c]}],
   "Print"],
  NotebookFileName -> "C:\\Users\\yo\\Desktop\\nb\\prueba.nb"];

如果您还想关闭初始笔记本,可以在最后添加NotebookClose[]

此外,如果您要关闭除最终输出笔记本之外的所有其他笔记本,您可以在开头添加以下内容: -

NotebookClose /@ DeleteCases[Notebooks[], EvaluationNotebook[]];

注意,您只是在全局上下文中清除变量。要清除当前上下文中的变量,您可以使用Clear@Evaluate[$Context <> "*"]

答案 1 :(得分:1)

我不知道Mathematica内置了什么内容,但如果您在xterm这样的Unix终端中工作,可以调用外部程序为您清除屏幕:

Run["tput cl"]

或更多,

!tput cl

这会查找当前终端的control code for clearing the screen并将其写入stdout,为您清除屏幕。

如果你有这个命令,你也可以运行clear命令:

!clear

如果你想要一种纯Mathematica方法来做到这一点,那么,可能有一些方法可以使用SymbolicC直接调用terminfo函数,但我不知道该怎么做。我能做的是找出清除屏幕的控制代码是什么,并将其硬编码到Mathematica代码中。

在我的xterm兼容终端上,

$ tput cl | hexdump -C
00000000  1b 5b 48 1b 5b 32 4a                              |.[H.[2J|
00000007

所以这也清除了屏幕:

BinaryWrite[Streams[][[1]],
 FromDigits[#, 16] & /@ {"1b", "5b", "48", "1b", "5b", "32", "4a"}]

我想你可以将它包装在一个函数或其他东西中以方便使用。

答案 2 :(得分:0)

在笔记本中,protocol ArrayStructValue { } extension Double: ArrayStructValue { } extension Int: ArrayStructValue { } var f: [ArrayStructValue] = [] f.append(1) f.append(2.0) type(of: f[0]) // Int.Type type(of: f[1]) // Double.Type 会选择所有单元格,而function buildSearch(substrings) { return new RegExp( substrings .map(function (s) {return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');}) .join('{1,}|') + '{1,}' ); } var pattern = buildSearch(['hello','world']); console.log(pattern.test('hello there')); console.log(pattern.test('what a wonderful world')); console.log(pattern.test('my name is ...'));会将其从屏幕上删除,看起来好像刚刚打开了Mathematica。你不能自动将它(把它放在一个脚本中),但如果你只是做一些计算它会很方便。

细胞实际上并没有完全消失,你仍然可以使用他们指定的任何变量或使用<Control>+a访问他们的结果。