首页 文章

从命令行调用函数时获取八度音程

提问于
浏览
6

我试图从命令行在 octave 中运行一个函数 . 该函数目前运行如下:

octave --silent --persist --eval 'function(input arguments)'

function.m 包含 plot 命令 . 当我使用上面的命令行参数调用 octave 时,绘图确实显示但八度进入其交互模式 . 我的问题是:

有没有办法让八度音阶显示从命令行调用时进入交互模式的情节 without

5 回答

  • 3

    AFAIK,绘图窗口是八度音程的子进程,因此只能在八度音程运行时显示 . 即使你从"interactive"模式中绘制了一些东西,让情节打开并关闭八度,情节也会消失 .
    你可以做的是绘制一些输出文件,如发布here

    f = figure
    set(f, "visible", "off")
    plot([1,2,3,4])
    print("MyPNG.png", "-dpng")
    
  • 12

    只需在绘图功能后使用 pause

  • 2

    您需要选择合适的图形工具包:

    available_graphics_toolkits 
    ans = 
    {
      [1,1] = fltk
      [1,2] = gnuplot
    }
    

    默认为 fltk ,如果不显示绘图,则无法写入文件 . 但是,如果选择 gnuplot ,它将能够在不显示文件的情况下写入文件 . 在您的文件中以:

    graphics_toolkit gnuplot
    
  • 1

    您可以使用:

    waitfor(h)
    

    最后,等待你关闭这个数字 .

  • 3

    问题是当你从命令行运行时,当它结束时,绘图窗口会随之消失 .

    #! /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
    

    在程序结束时,它等待用户输入终止,因此关闭绘图窗口 .

    干杯:)

相关问题