Octave 字符模式(shell/ASCII)使用八度脚本打印
在交互式shell会话中运行Octave时,我知道我可以显示字符模式/ASCII图,如下所述: 我的问题是,当我的八度脚本以非交互方式运行时,我希望有这种输出。也就是说,我希望能够运行以下内容:Octave 字符模式(shell/ASCII)使用八度脚本打印,octave,Octave,在交互式shell会话中运行Octave时,我知道我可以显示字符模式/ASCII图,如下所述: 我的问题是,当我的八度脚本以非交互方式运行时,我希望有这种输出。也就是说,我希望能够运行以下内容: #!/usr/bin/octave -qf plot(sin(0:7)) 并有以下几方面的产出: 1 >>>>>>>>>>>>>>>>>>>>>>>>
#!/usr/bin/octave -qf
plot(sin(0:7))
并有以下几方面的产出:
1 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> + ---+ + + + + >
> +--- | >
> | | >
> | | >
0.5 >+ | | +>
> | | | >
> | | | >
> | | | >
>| + | >
0 >+ | | +>
> | | >
> | | >
> | + >
> | | >
> | | >
-0.5 >+ | | +>
> | | >
> +--- | >
> -- | >
> + + + + -+| + >
-1 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1 2 3 4 5 6 7 8
如果我在ssh会话中打开octave,然后在octave终端调用我的脚本,我将获得该输出:
octave:1> testplot.m
但我真正想做的是从其他bash脚本调用testplot.m,例如:
$ ./testplot.m
或
这两种方法实际上都没有给出任何绘图输出
我注意到交互式会话输出似乎会随着终端窗口的大小自动伸缩,因此从这个意义上讲,它取决于会话
谢谢你的帮助
澄清-我知道如何在图形可见性关闭的情况下创建绘图,但我试图避免单独下载绘图文件
我还发现了这条线索:,但eplot似乎给了我错误(可能是用户错误、数据格式错误等,但我不确定),我更喜欢保持八度音阶,只要我在交互式会话中,八度音阶已经完全满足了我的要求 您所要做的就是在八度音阶脚本的末尾添加一个
暂停
问题是,您的脚本已经在末尾显示了绘图,但程序在您调用plot
后立即结束,因此程序退出,您甚至没有注意到绘图
在下图中,我添加了graphics_toolkit和gnuplot terminal type的设置,这不是因为您的问题需要它,而是因为在我的系统上,默认绘图会有所不同
我认为您希望在脚本末尾(绘图后)添加一个
drawnow
,或者添加一个pause
来解决我的问题。谢谢谢谢在过去的一周里,我使用了您的解决方案(具体来说,类似于pause(0.1)
)。在我看来,drawnow
稍微优雅一点;是否有理由使用pause
而不是drawnow
?@terikin这些函数做不同的事情<代码>暂停在没有参数的情况下,等待直到发生某种情况,从而防止绘图消失。函数drawnow
将在继续之前强制打印(在您的情况下,退出程序)。drawnow
对您有效的唯一原因是您有终端滚动条。但是如果绘图在一个单独的窗口上,或者如果终端窗口在程序结束后关闭(或者寻呼机也关闭,不确定),那么您会看到不同。
$ octave testplot.m