Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Matlab/Octave绘制字符模式(shell)图?_Matlab_Shell_Plot_Octave_Ascii Art - Fatal编程技术网

使用Matlab/Octave绘制字符模式(shell)图?

使用Matlab/Octave绘制字符模式(shell)图?,matlab,shell,plot,octave,ascii-art,Matlab,Shell,Plot,Octave,Ascii Art,这也许有点奇怪,但无论如何。有时,我在各地(大陆)的服务器或实验室计算机中使用ssh来检查资料,有时甚至运行Matlab或Octave来查看最新数据等。然后,当我需要任何类型的绘图时,乐趣就开始了。要么我通过互联网将一大块可能是垃圾的东西复制到我的电脑上,然后在本地生成情节。或者,如果前面的尝试没有选择,我将通过ssh和X-forwarding运行Matlab,这对于低带宽和/或高ping来说是痛苦的 事实上,我想知道是否有一种方法可以在一个外壳中生成老式的80年代风格的角色模式的情节,至少是简

这也许有点奇怪,但无论如何。有时,我在各地(大陆)的服务器或实验室计算机中使用ssh来检查资料,有时甚至运行Matlab或Octave来查看最新数据等。然后,当我需要任何类型的绘图时,乐趣就开始了。要么我通过互联网将一大块可能是垃圾的东西复制到我的电脑上,然后在本地生成情节。或者,如果前面的尝试没有选择,我将通过ssh和X-forwarding运行Matlab,这对于低带宽和/或高ping来说是痛苦的


事实上,我想知道是否有一种方法可以在一个外壳中生成老式的80年代风格的角色模式的情节,至少是简单的线条或点的情节(没有X-forwarding)。拥有一个“丑陋”(但很酷?)的角色模式情节至少能让我确定自己是在看一条直线、一条抛物线还是一堆垃圾——这可能会非常有用。我知道,有些东西可以由聪明的数学来决定,但是,嘿,抽象思维被高估了


编辑。。。另一个相关的(?)标记。

命令(和朋友)使用Java图形库,在纯文本模式下显然不起作用。顺便说一句,没有办法绕过这些底层库调用并将任何图形输出重定向到某个ASCII艺术转换器/生成器

您可能希望尝试类似建议的方法:

然后
scp/rsync
文件.fig结束(这有点像X-forwarding真的…)


当然,您可以编写一个函数来生成绘图,将其存储到tempfile(如上所述),然后传递PNG/JPG/。。。通过(或),其输出随后显示在终端中。

对于倍频程,您应该没有问题。我通常通过ssh在远程机器上进行计算,并一直使用它

只要您将gnuplot作为图形工具包(供将来参考,从3.6.2开始,这仍然是默认的,但将来可能会更改为fltk),如果没有X显示,您将获得ASCII图


要确保您拥有正确的图形工具包,只需在提示符处键入
graphics\u toolkit
。要将其更改为gnuplot,请使用
图形工具集gnuplot

尽管这个问题有很多部分答案,但通过WSL和Cygwin在Windows上唯一有效的方法是以下内容

  • 作为交互式CLI会话:
  • #启动Octave CLI会话:
    octave-cli.exe-iWq
    图形工具集(“gnuplot”)
    x=-2*pi:2*pi;
    y=sin(x);
    图(1,“可见”、“关闭”);
    绘图(y)
    打印(1,“-ddumb”,“dummy”);类型-q dummy.txt
    
    生成:

        1 |-------------------------------------------------------------|
          |        + ***    +        +       +  ** *  +        +        |
          |        **   *                     **   *                    |
          |       *     *                    *      *                   |
          |       *      *                   *       *                  |
      0.5 |-+    *        *                 *        *                +-|
          |      *        *                 *         *                 |
          |     *          *               *           *                |
          |    *           *               *           *                |
          |    *            *              *            *               |
        0 |-+ *             *             *             *             +-|
          |                  *            *              *              |
          |                  *           *               *              |
          |                   *          *                *             |
          |                   *         *                 *             |
     -0.5 |-+                  *        *                  *        * +-|
          |                    *       *                    *      *    |
          |                     *      *                     *    *     |
          |                     ****  *                      *   *      |
          |        +        +       *+*      +        +       *+*       |
       -1 |-------------------------------------------------------------|
          0        2        4        6       8       10       12       14
    
    不幸的是,这仍然依赖于使用临时文件
    dummy.txt
    。 但可怕的坏消息并没有提供任何明显的替代方案,也没有提供任何例子。在阅读完不可理解的文档后,最好通过以下相关问题进行解释和猜测:


  • 作为脚本化CLI会话:
  • $cat foo.m
    #!/usr/bin/env倍频程
    图形工具集(“gnuplot”)
    setenv GNUTERM dumb
    x=-2*pi:2*pi;
    y=sin(x);
    绘图(y)
    暂停(2);
    
    然后运行:
    octave cli foo.m

  • 作为一个班轮:
  • octave-cli.exe--eval“graphics_toolkit gnuplot;setenv GNUTERM dumb;绘图(sin(-2*pi:2*pi));暂停(2)”
    
    注意:
    暂停
    是获得任何输出所必需的


    如果正在寻找打印命令的其他选项(使用gnuplot时),请执行以下操作:

    gnuplot-e“设置术语”
    gnuplot-e“将终端设为哑;绘制sin(x);”
    
    例如,在正确支持的ANSI xterms中,可以将sixel与以下各项一起使用:

    gnuplot-e“设置端子六个ELGD;绘制sin(x);”
    

    “抽象思维被高估了”……好吧,我们不要去那里:)是的,这是一个很好的解决方案,不过,我最终还是复制了一些东西。我更想知道的是,我是否可以“留在”shell中而不需要复制文件。。。是的,在问题1853259中,他们仍然使用x-forwarding,实际上没有转发完整的界面。@ernestopheles:请参阅我的编辑。不过,这需要做一些工作,而且质量也不确定。好主意;等我有时间的时候,我会为这件事伤脑筋的:)这件事解决了。它并不漂亮,我以前见过更好的ASCII艺术,但确实很好。尽管如此,在gnuplot中并没有多少关于这个特性的文档。例如,彩色线将非常棒。@ernestopheles在搜索此功能时,了解终端类型名称为“dumb”可能会很有用。彩色线条其实很酷,也许你可以给它们贴个补丁。我想现在,它只演不同的角色。是的,我发现了“哑巴”。在一些gnuplotpdf文档中找到它需要一些时间。好吧,它说,“哑巴”是存在的——就是这样。这在
    版本5.1.0
    中仍然可用吗?我不能让它工作。您的
    $TERM
    设置和
    graphics\u toolkit()
    是什么?其他哪些设置是相关的?
        1 |-------------------------------------------------------------|
          |        + ***    +        +       +  ** *  +        +        |
          |        **   *                     **   *                    |
          |       *     *                    *      *                   |
          |       *      *                   *       *                  |
      0.5 |-+    *        *                 *        *                +-|
          |      *        *                 *         *                 |
          |     *          *               *           *                |
          |    *           *               *           *                |
          |    *            *              *            *               |
        0 |-+ *             *             *             *             +-|
          |                  *            *              *              |
          |                  *           *               *              |
          |                   *          *                *             |
          |                   *         *                 *             |
     -0.5 |-+                  *        *                  *        * +-|
          |                    *       *                    *      *    |
          |                     *      *                     *    *     |
          |                     ****  *                      *   *      |
          |        +        +       *+*      +        +       *+*       |
       -1 |-------------------------------------------------------------|
          0        2        4        6       8       10       12       14