我正在尝试从命令行在octave
中运行一个函数。该功能目前如下运行:
octave --silent --persist --eval 'function(input arguments)'
function.m
包含plot
命令。当我使用上面的命令行参数调用octave
时,绘图会显示但是八度音将进入其交互模式。我的问题是:
从命令行调用时,有没有办法让八度音阶显示 没有 进入交互模式的情节?
答案 0 :(得分:12)
在绘图功能之后使用pause
答案 1 :(得分:3)
AFAIK,绘图窗口是八度音程的子进程,因此只能在八度音程运行时显示。即使你从“交互式”模式中绘制一些东西,让情节打开和关闭八度,情节也会消失 你可以做的是绘制一些输出文件,如发布here:
f = figure
set(f, "visible", "off")
plot([1,2,3,4])
print("MyPNG.png", "-dpng")
答案 2 :(得分:3)
您需要选择合适的图形工具包:
Foo2
默认值为available_graphics_toolkits
ans =
{
[1,1] = fltk
[1,2] = gnuplot
}
,如果不显示绘图,则无法写入文件。但是,如果选择fltk
,它将能够在不显示文件的情况下写入文件。在您的文件中以:
gnuplot
答案 3 :(得分:2)
您可以使用:
waitfor(h)
最后,等待你关闭这个数字。
答案 4 :(得分:1)
问题是当你从命令行运行时,当它结束时,绘图窗口会随之消失。
#! /usr/bin/octave -qf
f = figure;
set(f, "visible", "off")
t=0:0.001:5*pi;
plot(t, sin(5*t)), grid
print("MyPNG.png", "-dpng")
这会将输出保存到运行它的目录中的MyPNG.png。
然后你可以用可视化程序打开它。
另一种选择是添加
pause
在程序结束时等待用户输入终止,因此关闭绘图窗口。
干杯:)
答案 5 :(得分:0)
也可以尝试等待密钥。
同时(waitforbuttonpress()== 0) 暂停(1) 结束