【问题标题】:How to run Octave code without the Octave IDE (similarly to Python)? [duplicate]如何在没有 Octave IDE 的情况下运行 Octave 代码(类似于 Python)? [复制]
【发布时间】:2021-05-09 06:11:30
【问题描述】:

上下文:当我使用 Python + matplotlib 时,我可以在任何文本编辑器(如 Sublime Text)中编写代码,执行 CTRL+B,然后是文本输出显示在文本编辑器的“构建结果”面板中,并且可选择在新的 GUI 窗口中呈现图形/绘图。
在后台,当我们执行“构建”时,文本编辑器会调用python myscript.py,就是这样。

它简单、完美、轻松。


现在我正在尝试对 GNU Octave 做同样的事情:编写 test.m 代码(例如 this one)。然后从我最喜欢的文本编辑器(而不是 Octave IDE)或命令行运行它。我试过了:

  • octave test.m: 绘图在 100 毫秒内显示然后消失!不行

  • octave --persist test.m:情节保持显示,这没关系...但这部分不好:它打开了一个 IDE(我不想要,因为我想继续使用我的常用的文本编辑器!),查看背景窗口:

如何让GNU Octave 的行为符合预期:stdout 中的文本输出(终端中或文本编辑器的“构建结果”面板中)和新窗口中的绘图输出? 重要提示:不产生 IDE 窗口。

我觉得奇怪的是这种行为不是默认行为。不应该吗?


编辑:解决方法:

octave-cli test.m

k = plot(...)
waitfor(k)

【问题讨论】:

  • 当您尝试从 CMD 运行这 2 个八度命令时会发生什么?
  • 正是我在问题中描述的(我从命令行进行了测试)
  • 为了获得类似的效果,我在终端中运行命令行界面octave-cli,在另一个终端中运行vim。不完全是你要找的东西,但 matplotlib 是一个 python 模块,而 octave 是一个独立于你的编辑器的程序。
  • 谢谢,我试试,你能用这个@matzeri 回复一下吗?
  • @TasosPapastylianou 谢谢你的帮助,确实解决了! PS:Python matplotlib plt.show() 默认是阻塞的(这很棒),所以我说它“开箱即用”。

标签: python windows command-line octave octave-gui


【解决方案1】:

为了获得类似的效果,我在终端中运行命令行界面 octave-clioctave --no-gui,在另一个终端中运行 vim
不完全是您要查找的内容,但 matplotlib 是一个 python 模块,而 octave 是一个独立于您的编辑器的程序。

查看两个终端和图表的示例,所有这些都在单独的窗口中。

【讨论】:

  • 谢谢!对我来说,octave-cli test.m 不起作用(warning: function .\test.m shadows a core library function),octave --no-gui test.m 立即返回(我们可能会在 10 毫秒内看到该图)。但是octave --no-gui --persist test.m 有效。并且不加载 IDE,这已经很棒了!不幸的是,当我们关闭绘图窗口时,我希望 Octave 控制台退出(例如在使用 python myscript.py 和使用 matplotlib 的脚本时)。那可能吗?这样,使用 CTRL+B 从文本编辑器构建多次不会产生 10 个不同的 Octave 控制台
  • 我将使用 Octave 控制台中的 run test.m 而不是从编辑器运行命令
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多