我正在寻找一些命令或一些允许清洁工作区域(屏幕)的例程,以便将结果显示在干净的屏幕上。命令不是清除变量之类的东西,而是屏幕。
在其他语言中,例如Qbasic cls
。
答案 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
访问他们的结果。