在交互式 shell session 中运行 Octave 时,我知道我可以显示字符模式/ASCII 图,如下所述:Character-mode (shell) plots with Matlab / Octave?

我的问题是,当我的 Octave 脚本以非交互方式运行时,我希望有那种输出。也就是说,我希望能够运行以下内容:

#!/usr/bin/octave -qf

plot(sin(0:7))

并按照以下方式输出:
    1 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
      >      +   ---+      +      +      +      +      >
      >      +---    |                                 >
      >     |         |                                >
      >    |           |                               >
  0.5 >+  |             |                             +>
      >   |             |                            | >
      >  |               |                           | >
      > |                 |                         |  >
      >|                   +                       |   >
    0 >+                    |                     |   +>
      >                      |                    |    >
      >                      |                   |     >
      >                       |                 +      >
      >                        |               |       >
      >                         |             |        >
 -0.5 >+                        |            |        +>
      >                          |           |         >
      >                           +---      |          >
      >                               --   |           >
      >      +      +      +      +     -+|     +      >
   -1 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
      1      2      3      4      5      6      7      8

如果我在 ssh session 中打开 Octave ,然后在 Octave 终端调用我的脚本,我会得到该输出:
octave:1> testplot.m

但我真正想做的是从其他 bash 脚本调用 testplot.m,例如:
$ ./testplot.m

或者
$ octave testplot.m

两者实际上都没有给出任何绘图输出。

我注意到交互式 session 输出似乎会随着终端窗口的大小自动缩放,因此从这个意义上说,它取决于 session 。

感谢您的任何帮助!

澄清 - 我知道如何在关闭图形可见性的情况下创建绘图,但我试图避免必须单独下载绘图文件。

我还发现了这个线程: Command-line Unix ASCII-based charting / plotting tool ,但 eplot 似乎给了我错误(可能是用户错误,错误的数据格式等,但我不确定),我更愿意将事情保持在 Octave - Octave 已经做了只要我在交互式 session 中,这正是我想要的!

最佳答案

您所要做的就是在 Octave 脚本的末尾添加一个 pause

问题是,您的脚本已经在最后显示了绘图,但是程序在您调用 plot 后立即结束,因此程序退出,您甚至没有注意到绘图。

在下图中,我添加了 graphics_toolkit 和 gnuplot 终端类型的设置,不是因为您的问题需要它,而是因为在我的系统上默认绘图会有所不同。

octave - 带有 Octave 脚本的字符模式(shell/ASCII)图-LMLPHP

关于octave - 带有 Octave 脚本的字符模式(shell/ASCII)图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50881826/

10-15 00:04