【问题标题】:How to suppress "ans" line from MATLAB output?如何从 MATLAB 输出中抑制“ans”行?
【发布时间】:2012-09-04 16:40:29
【问题描述】:

编辑:上述问题严格与 MATLAB 的输出有关 默认情况下在交互式会话中生成,如下所示 给定的例子。我不感兴趣 由脚本、函数、方法等产生的输出的外观。

此外,这样做的动机是为了保留更多我的笔记本电脑极其稀缺的“屏幕空间”,用于实际信息输出


即使使用format compact,除了显示正确输出的行之外,MATLAB 的输出还包括ans = 行。例如

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

有什么方法可以抑制 ans = 行,例如,上面的最后一次交互看起来像这样?:

>> date
04-Sep-2012
>> 

...或者至少是这样的?:

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

【问题讨论】:

标签: matlab


【解决方案1】:

这有点棘手,可能会产生其他后果,但如果您主要显示某种类型的数据(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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      disp(sprintf('<Your format>',<variables>) 完成这项工作。

      【讨论】:

        【解决方案4】:

        如果您正在为您的工作创建一个新课程,那么您将有一些选择。命令窗口上的“漂亮”显示是由所有类继承的display方法创建的你可能很熟悉。 (help display 了解详情)。

        但是,对于标准的Matlab数组,这些方法都是内置的,我不相信可以修改。

        因此,如果您正在构建工具(sprintffprintfdispvarious tools hacking the underlying java display),虽然您有无穷无尽的选择,但我不知道有什么方法可以将“更紧凑”的显示样式设置为快速、交互式工作期间的默认设置。

        【讨论】:

          猜你喜欢
          • 2012-06-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-10-17
          • 2018-08-14
          • 1970-01-01
          • 1970-01-01
          • 2014-07-04
          相关资源
          最近更新 更多