如何在MATLAB输出中抑制"ans"行?

4

编辑:上面的问题严格涉及到MATLAB在交互式会话中默认生成的输出,如所示的示例。我不感兴趣修改脚本、函数、方法等生成的输出外观的方式。

此外,这样做的动机是为了让我的笔记本电脑的极其有限的“屏幕实际空间”用于实际信息输出


即使使用format compact,MATLAB的输出仍包括一个ans=行,除了显示正确输出的行(s)。例如:

>> format compact
>> date
ans =
04-Sep-2012
>> 

有没有一种方法可以抑制 ans = 这一行的输出,以便例如上面的最后一次交互只显示结果本身呢?

>> date
04-Sep-2012
>> 

是否将其更改为这样更好呢?

>> date
ans = 04-Sep-2012
>> 

1
你看过这个帖子吗? - Robert Harvey
disp(date) 做你想要的事情。 - Praetorian
4个回答

4

这里有一个有点棘手的方法,可能会带来其他后果,但是如果你主要展示某种类型(double、char等)的数据,你可以覆盖相应的内置显示方法。

例如:

>> % Before overwriting the @char/display
>> date
ans =
04-Sep-2012

现在在MATLAB路径中的某个位置创建一个名为@char的目录,并添加一个名为display.m的方法。
function display(x)
disp(x)
end

那么你需要的是:

然后你会有

>> % After overwriting the @char/display
>> date
04-Sep-2012

3

ans 只是 MATLAB 存储其“上一个”答案的变量名称。避免它的最简单方法是将结果分配给其他变量并使用 fprintfsprintf 清晰地打印出来。


1

disp(sprintf('<您的格式>',<变量>) 能完成这个任务。


0
如果您正在为工作创建一个新类,那么您将有一些选项。命令窗口上的“漂亮”显示是由所有类继承的display方法创建的。通常,display打印变量的名称,“ = \n”,然后调用disp方法,这可能是您熟悉的。(有关详细信息,请参见help display)。
但是,对于标准的Matlab数组,这些方法都是内置的,我不认为它们可以被修改。
因此,虽然如果您正在构建工具(sprintffprintfdisp、各种工具来破解底层Java显示),您有无尽的选择,但我不知道在快速交互式工作期间设置“更紧凑”的显示样式作为默认值的任何方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接